PHP image upload to SERVER

Hi, I had create a upload picture into the server.It is able
to work on the WAMP server and upload successfully. However, I
faced some error when I upload into the server.
Warning: copy(): open_basedir restriction in effect.
File(/images/uploaded/1221651842.jpg) is not within the allowed
path(s):
(/var/www/vhosts/sppa.org.sg/subdomains/istaff/httpdocs:/tmp) in
/var/www/vhosts/sppa.org.sg/subdomains/istaff/httpdocs/editImage.php
on line 138
Warning: copy(/images/uploaded/1221651842.jpg): failed to
open stream: Operation not permitted in
/var/www/vhosts/sppa.org.sg/subdomains/istaff/httpdocs/editImage.php
on line 138
Can anybody please help?
Thanks a million!

Hi, I had create a upload picture into the server.It is able
to work on the WAMP server and upload successfully. However, I
faced some error when I upload into the server.
Warning: copy(): open_basedir restriction in effect.
File(/images/uploaded/1221651842.jpg) is not within the allowed
path(s):
(/var/www/vhosts/sppa.org.sg/subdomains/istaff/httpdocs:/tmp) in
/var/www/vhosts/sppa.org.sg/subdomains/istaff/httpdocs/editImage.php
on line 138
Warning: copy(/images/uploaded/1221651842.jpg): failed to
open stream: Operation not permitted in
/var/www/vhosts/sppa.org.sg/subdomains/istaff/httpdocs/editImage.php
on line 138
Can anybody please help?
Thanks a million!

Similar Messages

  • Fatal error on php image upload

    I'm trying to test a popular CMS system on my mac and I'm getting the following error when trying to upload a single image.
    Fatal error: Allowed memory size of 10485760 bytes exhausted (tried to allocate 7776 bytes) in /Library/WebServer/Documents/FlashModX/assets/snippets/maxigallery/watermark/Th umbnail.class.php on line 183
    My php.ini settings are:
    memory 128
    post max size 8
    upload max filesize 2m
    max execution time 30
    max input time -1
    what do I need to change?

    thanks for googling. You know I did google and found something similar and did try to add the init to my php file but it really did not work. I was up to 80m which seems a bit much when trying to load a single 480kb file. This is why I posted here in the mac discussions.
    I normally trust the information that I get here and not necessarily from google results.

  • PHP image upload

    Hi, sorry for posting this here but I'm having a hard time
    finding an answer via search engines. Maybe I just don't know what
    criteria to search for. Here's what I'm trying to accomplish:
    Form (Flash or HTML) that enables a user to choose an image
    file, upload it and have a PHP script append the image file name to
    an existing XML file for use in my .swf
    I am just getting involved in PHP and find it very useful but
    I am having the worst time searching for help! This forum is the
    greatest and I hope someone here knows a link or something to point
    me to.
    Many thanks...

    thanks for googling. You know I did google and found something similar and did try to add the init to my php file but it really did not work. I was up to 80m which seems a bit much when trying to load a single 480kb file. This is why I posted here in the mac discussions.
    I normally trust the information that I get here and not necessarily from google results.

  • How do i upload an image to a server and put the name into a database table

    Ok, i found a php image upload script that im using for a cms
    image gallery on my site. But for it to work the way i need to i
    have to have certain information submited into a mysql table at the
    same time. I could just make it so the user types the name of the
    image in a second form, but i would rather not have to as it seems
    a clumsy way to do things and opens things up to typos etc.
    So, i can upload the image ok, and i can upload data to the
    table, but i dont know what I have to do so that the name of the
    uploaded file is automaticly inserted into the mysql table.
    The first bit of code below is the form I am using to upload
    the file to the server. The second bit of code is what I am using
    to tell the server what the file name is.
    How do I combine the 2 form into one? Please help. It is
    driving me to dispair.
    Attach Code
    <form enctype="multipart/form-data" action="uploader.php"
    method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="500000"
    />
    Choose a file to upload: <input name="uploadedfile"
    type="file" />
    <br />
    <input type="submit" value="Upload File" />
    </form>
    <form action="<?php echo $editFormAction; ?>"
    method="post" name="form2" id="form2">
    <table align="center">
    <tr valign="baseline">
    <td nowrap="nowrap" align="right">Image One</td>
    <td><input type="text" name="kingsImage1"
    value="<?php echo
    htmlentities($row_rskingscentre['kingsImage1'], ENT_COMPAT,
    'UTF-8'); ?>" size="32" /></td>
    </tr>
    <tr valign="baseline">
    <td nowrap="nowrap" align="right">Image Two</td>
    <td><input type="text" name="kingsImage2"
    value="<?php echo
    htmlentities($row_rskingscentre['kingsImage2'], ENT_COMPAT,
    'UTF-8'); ?>" size="32" /></td>
    </tr>
    <tr valign="baseline">
    <td nowrap="nowrap" align="right">Image
    Three</td>
    <td><input type="text" name="kingsImage3"
    value="<?php echo
    htmlentities($row_rskingscentre['kingsImage3'], ENT_COMPAT,
    'UTF-8'); ?>" size="32" /></td>
    </tr>
    <tr valign="baseline">
    <td nowrap="nowrap"
    align="right"> </td>
    <td><input type="submit" value="Update record"
    /></td>
    </tr>
    </table>
    <p>  </p>
    <p>
    <input type="hidden" name="MM_update" value="form2" />
    <input type="hidden" name="kingsHeader" value="<?php
    echo $row_rskingscentre['kingsHeader']; ?>" />
    </p>
    </form>

    jeffoirecoupe1234 wrote:
    > Ok, i found a php image upload script that im using for
    a cms image gallery on
    > my site. But for it to work the way i need to i have to
    have certain
    > information submited into a mysql table at the same
    time. I could just make it
    > so the user types the name of the image in a second
    form, but i would rather
    > not have to as it seems a clumsy way to do things and
    opens things up to typos
    > etc.
    >
    > So, i can upload the image ok, and i can upload data to
    the table, but i dont
    > know what I have to do so that the name of the uploaded
    file is automaticly
    > inserted into the mysql table.
    >
    > The first bit of code below is the form I am using to
    upload the file to the
    > server. The second bit of code is what I am using to
    tell the server what the
    > file name is.
    >
    > How do I combine the 2 form into one? Please help. It is
    driving me to dispair.
    >
    > Attach Code
    >
    > <form enctype="multipart/form-data"
    action="uploader.php" method="POST">
    > <input type="hidden" name="MAX_FILE_SIZE"
    value="500000" />
    > Choose a file to upload: <input name="uploadedfile"
    type="file" />
    > <br />
    > <input type="submit" value="Upload File" />
    > </form>
    >
    > <form action="<?php echo $editFormAction; ?>"
    method="post" name="form2"
    > id="form2">
    > <table align="center">
    > <tr valign="baseline">
    > <td nowrap="nowrap" align="right">Image
    One</td>
    > <td><input type="text" name="kingsImage1"
    value="<?php echo
    > htmlentities($row_rskingscentre['kingsImage1'],
    ENT_COMPAT, 'UTF-8'); ?>"
    > size="32" /></td>
    > </tr>
    > <tr valign="baseline">
    > <td nowrap="nowrap" align="right">Image
    Two</td>
    > <td><input type="text" name="kingsImage2"
    value="<?php echo
    > htmlentities($row_rskingscentre['kingsImage2'],
    ENT_COMPAT, 'UTF-8'); ?>"
    > size="32" /></td>
    > </tr>
    > <tr valign="baseline">
    > <td nowrap="nowrap" align="right">Image
    Three</td>
    > <td><input type="text" name="kingsImage3"
    value="<?php echo
    > htmlentities($row_rskingscentre['kingsImage3'],
    ENT_COMPAT, 'UTF-8'); ?>"
    > size="32" /></td>
    > </tr>
    > <tr valign="baseline">
    > <td nowrap="nowrap"
    align="right"> </td>
    > <td><input type="submit" value="Update record"
    /></td>
    > </tr>
    > </table>
    > <p>  </p>
    > <p>
    > <input type="hidden" name="MM_update" value="form2"
    />
    > <input type="hidden" name="kingsHeader"
    value="<?php echo
    > $row_rskingscentre['kingsHeader']; ?>" />
    > </p>
    > </form>
    >
    >
    >
    Hi Jeff:
    Though this does not show you how to solve this issue via a
    code
    snippett, there are a couple of extensions at WebAssist.com
    that enable
    you to do this, they are Data Assist and Digital File Pro.
    When you have
    time, take a look at these Solution Recipes (tutorials) that
    show how
    DataAssist is used and then now Digital File Pro is used in
    conjunction
    with DataAssist:
    http://www.webassist.com/professional/products/solutionrecipe/Media_139.asp
    http://www.webassist.com/professional/products/solutionrecipe/Media_112.asp
    DataAssist can be used to save time when you need to build
    database
    search and management applications quickly, and Digital File
    Pro can be
    used to include file upload functionality to your form fields
    while
    enabling you to insert your server file name into the
    database, all on
    the same page.
    enthusiastically,
    mark haynes

  • How to Upload Web App images to different server?

    Hello,
    is it possible to configure web app item submission so images are uploaded to a different server (not BC)?
    Customers are uploading lots of images with their web app items and I'm really getting short on server storage. Buying extra space in BC servers is a bit expensive, especially when I need loads of it. Smart thing would be to AUTO resize images to take much less space in the server but this is not possible with BC as no back end is allowed (maybe this could good improvement in next releases? "Auto resizing images to the value indicated"). Some customers are uploading images of up to 9 MB size X 20. I could limit upload size (i guess), but thats a big hit to UX, they should then bother resizing their images on some software before uploading.
    So far my solution is to simply download images from the server, resize them manually with PS and then upload them back again. Maybe someone knows better solution than photoshop to automate the resizing process? I actually can automate the process with PS but image names changes and this is another problem. So a program to auto resize loads of images and keep their original names?
    Another solution could be manually storing images to another server and retyping the links in web app items, but its a bit too crazy
    Thanks

    Hi Ray,
    Indeed, this is not possible as an 'out of the box' feature and looks like a long-shot if attempting to use a separate server for storage.

  • How can i upload a image file to server by using jsp or servlet.

    Hi,
    I m gurumoorthy. how can i upload a image file to server by using jsp or servlet without using third party API. pls anyone send me atleast outline of the source code.
    Pls send me anyone.
    Regards,
    Gurumoorthy.

    I'm not an applet programmer so I can't give you much advice there.
    If you want to stream the file from the server before it's entirely uploaded, then I don't believe you can treat it like a normal file. If you're just wanting to throw it up there and then listen to it, then you can treat it like a normal file.
    But again, I'm not entirely certain. You might be able to stream the start of the file from the server while you're still uploading the end of it, but it probably depends on what method you're using to do the transfer.

  • How to upload a file which may contain text as well as image to the server using windows phone 8 application ?

    How to upload a file which may contain text as well as image  to the server using windows phone 8 application ?

    You're going to need to give way more detail about the situation before we can help.

  • PHP image gallery uploader for client website?

    I am trying to find a php image gallery uploader so that once I install the code into my clients website, they can upload via the web their pictures to the gallery, I've googled and come up empty. It would need to look nice, not clunky (think flowchart gallery on the mac).
    How can this be done. Hoping to buy software and install it, let the program do the work.
    Thanks,
    Stefan
    http://www.bluebarngraphics.com

    I am not aware of any off the shelf software  as you describe, but I am thinking is should be a fairly straightforward project.
    1. Create a form for your client to upload images, alt  and text descriptions into a database.
    2. Take some off the shelf photo gallery, wrap the code in a "do while" loop, call the images and text from the database.
    Gary

  • Image: display from local drive, upload to server file system, and display from server

    Hello,
    I am using jdev 11.1.2.4.0...
    The requirement is that users would like to upload images from their local drive to server drive and they would like display images from server drive later.
    We don't want to keep images in database. I am not sure what the solution should be; however, I plan to ....
    1. create a table to keep an information of images -- image_id, image_location (server drive), image_filename
    2. create a page where users can enter image information and specific filename from a local drive (I think I will use inputFile component) and provide the preview button to display an image on screen before save it. To save data is to save information to the database and copy an image file to the server drive (the destination location for image files is predefined.)
    3. create another page where users can browse information from the database and display an image for a selected record by getting from the server.
    I need suggestions on...
    1. how to display an image on page from the local drive?
    2. how to copy a file from a local drive to a server?
    3. how to display an image on page from the server drive?
    Thank you.
    nat

    See:
    http://tompeez.wordpress.com/2011/11/26/jdev11-1-2-1-0-handling-imagesfiles-in-adf-part-1/
    http://tompeez.wordpress.com/2011/11/26/jdev11-1-2-1-0-handling-imagesfiles-in-adf-part-2/
    http://tompeez.wordpress.com/2011/12/16/jdev11-1-2-1-0-handling-imagesfiles-in-adf-part-3/
    Where Timo saves images to the database, you save it to the file system (examples on how to do this from Java are available plenty if you just Google for it). Similar to Timo you then use the image tag to display images. The difference is that you can directly add the URL from the database table.
    The benefit of using a database to host images is that you are not dependent on file server structures though
    Frank

  • Question about image preview in client side before upload the image file to server

    Hi everyone:
    My project has an image upload function. Currently it only display a fileupload component, after user press OK, the file will upload to server, but there's no preview before user press OK.
    I want it can show the preview, I know that I can upload the file to a temporary directory on server then show that image to client, but in this way will cause strain on server. Is there any other ways to preview the image? Like using JavaScript? Thankyou.

    Stuck with BMP

  • Image upload directory or server

    I want to upload imges file into directory and want to use
    for Database. I could not get any option in the Form of Dreamweaver
    for image uploading.
    please help me

    Dreamweaver does not come with any file upload scripts. You
    need to either create the script yourself or locate one on the web
    appropriate for the scripting language you are using.

  • Multiple image upload CRASH!!! but works with simple image upload

    I'm getting MAD.
    I'm using php and GD
    While the simple image and re size works like a charm, the multiple image upload or the multiple file upload have a strange behavior.
    It opens the pop-up with flash, then eventually shows me files or thumbnails but when I try to up load I just wait and get the typical "system becoming unstable" flash error.
    As I can see the directory is always generated (I've tried also to put a static directory) but after stargin the upload the flash uploader just crashes and no result.
    Any help would be really appreciated

    Hi Fonzie,
    as the folder is getting created, the issue you´re having is not related to wrong folder permission - it´s something else...
    As I wrote before, che common upload and resize function works perfectly
    this one works perfectly, because it´s just one file to upload and to process, wheras doing that with multiple files might collide with some settings on your server
    So for sure it's not a simple issue as the max filesize
    Are you sure ? Did you check the current "max_upload_filesize" setting ? As long you don´t check it, you can´t know :-)
    As a general rule of thumb, it´s important to be aware of the fact that uploading & resizing images on the server might collide with several PHP settings -- and the more images you upload and resize in one swoop, the closer you´re getting to these limits respectively might even be exceeding them. The following "directives" are those which have an effect on whether your image/file upload & processing will work or not:
    - "max_upload_filesize" :: is sometimes set to just 8 MB on a shared hosting, sometimes 16 MB, sometimes more. This setting will affect the file upload procedure only
    - "set_time_limit" (e.g. 30 seconds) :: if the execution time of a script exceeds this limit for whatever reason, the server simply shuts it down without letting you (respectively the flash uploader) know it´s been shut down. This *might* be the reason why ADDT´s flash uploader hangs respectively returns that error message after some time, because it´s waiting for some response from the server which never comes.
    - "memory_limit" (e.g. 8 MB) :: this directive is a sort of "allocated server RAM" for your account, and it´s in particular the image resizing process which will grab more or less memory resources -- the higher the the resizing factor is, the more RAM is spent, and the more images are getting resized in one swoop, the worser it gets.
    However, all these PHP directives can be changed, and your host might even be so courteous to increase the currently defined values of those abovementioned directives for you -- and that´s what I´m suggesting at this point.
    Cheers
    Günter Schenk
    Adobe Community Expert, Dreamweaver

  • Image upload not working

    I have an image upload script that upload the image, but does not allow the name of the image to be inserted into the database.
    Here is the code
    if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "signup3")) {
      $updateSQL = sprintf("UPDATE player SET photo=%s WHERE player_id=%s",
                           GetSQLValueString($_FILES['ufile']['name'], "text"),
                           GetSQLValueString($_POST['user'], "int"));
      mysql_select_db($database_db, $db);
      $Result1 = mysql_query($updateSQL, $db) or die(mysql_error());
      $updateGoTo = "team-control.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
        $updateGoTo .= $_SERVER['QUERY_STRING'];
      header(sprintf("Location: %s", $updateGoTo));
    //define a maxim size for the uploaded images in Kb
    define ("MAX_SIZE","50000");
    //This function reads the extension of the file. It is used to determine if the file  is an image by checking the extension.
    function getExtension($str) {
             $i = strrpos($str,".");
             if (!$i) { return ""; }
             $l = strlen($str) - $i;
             $ext = substr($str,$i+1,$l);
             return $ext;
    //This variable is used as a flag. The value is initialized with 0 (meaning no error  found) 
    //and it will be changed to 1 if an errro occures. 
    //If the error occures the file will not be uploaded.
    $errors=0;
    //checks if the form has been submitted
    if(isset($_POST['Submit']))
         //reads the name of the file the user submitted for uploading
         $image=$_FILES['ufile']['name'];
         //if it is not empty
         if ($image)
         //get the original name of the file from the clients machine
             $filename = stripslashes($_FILES['ufile']['name']);
         //get the extension of the file in a lower case format
              $extension = getExtension($filename);
             $extension = strtolower($extension);
         //if it is not a known extension, we will suppose it is an error and will not  upload the file, 
        //otherwise we will do more tests
    if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif"))
            //print error message
                 echo '<h1>Unknown extension!</h1>';
                 $errors=1;
             else
    //get the size of the image in bytes
    //$_FILES['image']['tmp_name'] is the temporary filename of the file
    //in which the uploaded file was stored on the server
    $size=filesize($_FILES['ufile']['tmp_name']);
    //compare the size with the maxim size we defined and print error if bigger
    if ($size > MAX_SIZE*1024)
        echo '<h1>You have exceeded the size limit!</h1>';
        $errors=1;
    //we will give an unique name, for example the time in unix time format
    //$image_name=time().'.'.$extension;
    //the new name will be containing the full path where will be stored (images folder)
    $newname=$image;
    //we verify if the image has been uploaded, and print error instead
    $copied = copy($_FILES['ufile']['tmp_name'], $newname);
    if (!$copied)
        echo '<h1>Copy unsuccessfull!</h1>';
        $errors=1;
    //If no errors registred, print the success message
    if(isset($_POST['Submit']) && !$errors)
         echo "<h1>File Uploaded Successfully!</h1>";
    I dont know why its not working...I've used this same script in the same way in another website and it works fine.

    Check with your host for permission settings. If it works locally, and on other servers, then the code works, it just may not work in the particular
    environment your host has set up.
    Lawrence Carmer - *Adobe Community Professional*
    http://www.Cartweaver.com
    Complete Shopping Cart Application for
    Dreamweaver, available in PHP and ColdFusion
    Stay updated - http://blog.cartweaver.com

  • Restrict image pixel size in multiple image upload

    Re: Multiple Image Upload behaviour.
    One of the only issues I have with this extension is if users try to upload an image within the limits I set (of 250Kb) but with a high pixel count.
    For example, a jpg of 800 x 600 at 200Kb causes no problem, but a one of 2000 pixels at 150Kb probably will.
    I understand that there is probably more server load to resize a large pixel image, so is there a way to check the pixel size of images to be uploaded as well as the file size and reject it if it is too large?

    But what you could do, is retrieving the php.ini´s "post_max_size" value and display a note to your site visitors:
    <br />
    <br />
    <b>1.</b> put this into the doc´s head:
    <br />
    <br /><?php<br />$replace_max_size_MB = str_replace("M"," MB",ini_get('post_max_size'));<br />?>
    <br />
    <br />
    <b>2.</b> the related message:
    <br />
    <br />Pics larger than <?php echo $replace_max_size_MB; ?> will be rejected by the server
    <br />
    <br />Cheers,
    <br />Günter Schenk
    <br />Adobe Community Expert, Dreamweaver

  • This is my Jsp code for image upload in database:

    This is my Jsp code for image upload in database:
    -----------Upload.jsp----------------
    <html>
    <head>
    </head>
    <body bgproperties="fixed" bgcolor="#CCFFFF">
    <form method="POST" action="UploadPicture.jsp" enctype="multiform/form-data">
    <%! int update=0; %>
    <%@ page import="java.util.*" %>
    <%@ page import="java.sql.*" %>
    <%@ page import="java.text.*" %>
    <%@ page import="java.sql.Date" %>
    <%@ page import="java.io.*"%>
    <%@ page language = "java" %>
    <%
    try
    String ct="3";
    String path;
    File image=new File(request.getParameter("upload"));
    path=request.getParameter("upload");
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:odbc:itPlusElectronics","","");
    PreparedStatement pstmt=con.prepareStatement("insert into graphics values(?,?,?)");
    pstmt.setString(2,path);
    pstmt.setString(3,ct);
    InputStream is=new FileInputStream(path);
    pstmt.setBinaryStream(1, is, (int)(image.length()));
    int s=pstmt.executeUpdate();
    if(s>0)
    out.println("Uploaded");
    else
    %>
    unsucessfull
    <%}
    is.close();
    pstmt.close();
    catch(Exception e)
    }%>
    </p>
    <p><br>
    <img src="UploadedPicture.jsp">image</img>
    <p></p>
    </form>
    </body>
    </html>
    My database name is itPlusElectronics and the table name is "graphics".
    I have seen as a result of the above code that the image is stored in database as "Long binary data". and database table is look like as follows-------
    picture path id
    Long binary data D:\AMRIT\1-1-Picture.jpg 3
    To retrive and display i use this JSP code as--
    ------------------------UploadedPicture.jsp------------------------------
    <html>
    <head>
    </head>
    <body bgproperties="fixed" bgcolor="#CCFFFF">
    <%! int update=0; %>
    <%@ page import="java.util.*" %>
    <%@ page import="java.sql.*" %>
    <%@ page import="java.text.*" %>
    <%@ page import="java.io.*"%>
    <%@ page language = "java" %>
    <%@page import="javax.servlet.ServletOutputStream"%>
    <%
    try
    String path;
    path=request.getParameter("upload1");
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:odbc:itPlusElectronics","","");
    PreparedStatement pst = con.prepareStatement("SELECT * FROM graphics WHERE id ='3'");
    // pst.setString(3, id);
    ResultSet rs = pst.executeQuery();
    path=rs.getString("path");
    if(rs.next()) {
    byte[] bytearray = new byte[4096];
    int size=0;
    InputStream sImage;
    sImage = rs.getBinaryStream(1);
    response.reset();
    response.setContentType("image/jpeg");
    response.addHeader("Content-Disposition","filename=path");
    while((size=sImage.read(bytearray))!= -1 )
    response.getOutputStream().write(bytearray,0,size) ;
    response.flushBuffer();
    sImage.close();
    rs.close();
    catch(Exception e)
    %>
    </body>
    </html>
    Now after browsing a jpg image file from client side and pressing submit button ;
    I am unable display the image in the Upload.jsp file.Though I use
    <img src="UploadedPicture.jsp">image</img> HTML code in Upload.jsp
    file .
    Now I am unable to find out the mistakes which is needed for displaying the picture in the Upload.jsp page..
    If any one can help with the proper jsp code to retrive and display the image ,please please help me !!!!!!!!!!!!!!!!!!!!!!!!!!

    dketcham wrote:
    cotton.m wrote:
    >
    2) I'm looking at how you called stuff, and you're trying to call the jsp file as an image? That jsp isn't the source of the image, just a page linking to an image. I think if you really want to do things that way you're going to need to just include that jsp within the jsp you're calling it from (or you can do it the easy way, and if you have the information to get the path of the image you want, you could simply call the image from the first jsp you posted)This is incorrect.
    There are two JSPs. The second when called will (if it worked) return the source of an image as stored in the database.even when called with <img src=xx.jsp>??
    Yes.
    If any of what I say next seems obvious or otherwise negative I apologize, just trying to explain and I don't know what you know vs what you don't.
    The link in the src is just a URL not a filetype. So just because it ends with JSP does not mean it has to return HTML. The content type is determined by the browser using the Content-Type header returned by the server in the HTTP response. In this case the header is set to be a jpeg so that's what the browser will attempt to interpret the content part of the response as.
    So in fact one is not limited to just HTML or images but whatever content type you would like to return (that the browser can understand anyway). This could be HTML or it could be an image of some type or it could be a PDF or it could be an Excel spreadsheet. All you have to do in the JSP is set the header appropriately and then send content that is actually in that format.
    This does not just apply to JSP by the way but all other web programming languages. You can do similar things to produce the same results in PHP, Perl, ASP etc.
    The only JSP/Servlet complication is whether or not doing this in a JSP is a "good" idea but I am not an expert enough at that to make a definitive statement. Mostly though JDBC in a JSP is a no-no.

Maybe you are looking for