我是jsp的初学者,不知道各位有没有什么好的办法可以实现?大家探讨探讨,
分数不是问题,只要问题能够解决!!!

解决方案 »

  1.   

    使用JSP/Servlet上载文件   使用 JSP/ Servlet上载文件正成为一项常用的任务。以下是一个简单的例程,使用了jspsmart的一个免费的组件。你可以在JSPSMART站点进行下载。 1. Html File 
    <html> 
    <body> 
    <script LANGUAGE="javascript" SRC="JSFunction.js"> 
    </script> 
    <script language="JavaScript"> 
    <!-- 
    function checkForm(){ if (document.uploadform.adsImage.value==""){ 
    alert("You must choose what image file to upload!"); 
    return false; 

    document.uploadform.submit(); 

    function cancelUpload(){ 
    window.close(); 
    window.opener.focus(); 

    //--> 
    </script> 
    <form name="uploadform" method="post" 
    action="uploadImage.jsp" ENCTYPE="multipart/form-data" 
    target=_self> 
    <center> 
    <table border="1" width="65%"> 
    <tr> 
    <td colspan=2 nowrap align=center>广告图片上载</td> </tr> 
    <tr> 
    <td width="15%" nowrap >广告图片:</td> 
    <td width="50%" nowrap><input type="file" 
    name="adsImage" size="20"></td> 
    </tr> 
    <tr> 
    <td align="center" colspan=2 > 
    <input type="button" value="upload" onclick="return 
    checkForm();" > 
    &nbsp;&nbsp;&nbsp; 
    <input type="button" value="Cancel" onclick="return 
    cancelUpload();"> 
    </td> </tr> 
    </form> 
    </table> 
    <!-- 
    <a href="Javascript:window.close();">close this window</a> 
    --> 
    <script language="JavaScript"> 
    <!-- 
    this.focus(); 
    //--> 
    </script> 
    </body> 2. JSP File 
    <%@ page language="java" import="com.jspsmart.upload.*, 
    java.sql.*,java.util.* "%> 
    <%-- use SmartUpload bean --%> 
    <jsp:useBean id="mySmartUpload" scope="page" 
    class="com.jspsmart.upload.SmartUpload" /> <% //Initialization 
    mySmartUpload.init(config); 
    mySmartUpload.service(request,response); //Set Restriction 
    mySmartUpload.setAllowedFilesList("gif,bmp,jpeg,jpg"); 
    mySmartUpload.setTotalMaxFileSize(51200); // Upload 
    try{ 
    mySmartUpload.upload(); 

    catch(Exception e){ 
    out.println("<font color=red>Upload File Fail!</font> 
    <a href= 
    \"JavaScript:window.history.back();\">back</a><br>"); 
    out.println("<UI>Notes:</UI>"); out.println("<UL>You must set correct File 
    Name.</UL>"); 
    out.println("<UL>You file size must be less than 
    50K.</UL>"); 
    out.println("<UL>You can only upload .Gif .jpeg .jpg and 
    .bmp files.</UL>"); return; } 
    //save file to disk 
    mySmartUpload.getFiles().getFile(0).saveAs("/" + 
    "FileName");   %> 
      

  2.   

    我这里有一个,不知用的上否?不过我用的数据库是Oracle8i的第一步:建立数据库
    create table test_img(id number(4),name varchar(20),img long raw);第二步:(NewImg.html)<html><head><title>添加图片</title></head>
    <body>
    添加图片<br>
    <form method="post" action="insertNews.jsp">
    图像ID:<input name="id" size="10">
    <br>
    选择图像:<input type="file" name="image">
    <br>
    <input type="submit" value="上传" name="submit" size="25">
    <input type="reset" value="清除" name="clear" size="25">
    <br>
    </form>
    </body></html>第三步:插入数据库(InsertImg.jsp)<%@ page language="java"%>
    <%@ page contentType="text/html;charset=gb2312" %>
    <%@ page import="java.util.*" %>
    <%@ page import="java.sql.*"%>
    <%@ page import="java.text.*"%> 
    <%@ page import="java.io.*"%>  <%
    Class.forName("oracle.jdbc.driver.OracleDriver"); 
    String url="jdbc:oracle:thin:@lubin:1521:b2bdb"; 
    Connection con=DriverManager.getConnection(url,"demo","demo"); //插入数据库,在此处,表中有多少字段就要有多少个占位符(?)
    String sql="insert into test_img values (?,?,?)";
    //获取传值ID
    String id=request.getParameter("id");
    //获取image的路径
    String kk=request.getParameter("image");
    //转换成file格式
    File filename=new File(kk);//将文件的长度读出,并转换成Long型
    long l1=filename.length();
    int l2=(int)l1;//以流的格式赋值
    FileInputStream fis=new FileInputStream(filename);PreparedStatement ps =con.prepareStatement(sql);
    /**********************************************************************************
    ** 插入ID号,如果此处要插入空值的话,则可以用:ps.setString(1,"");
    ** 参数1:存放ID的字段在表中的位置是第1个(以下同理)
    ** 参数id:存放ID号的变量
    **********************************************************************************/
    ps.setString(1,id);ps.setString(2,filename.getName());
    /**********************************************************************************
    ** 以二进制形式将图片读取后插入表中。
    ** 参数3:存放图片的字段在表中的位置是第3个
    ** 参数fis:可以理解为文件名
    ** 参数l2:上传图片的长度
    **********************************************************************************/
    ps.setBinaryStream(3,fis,l2);
    //ps.setBinaryStream(3,fis,fis.available());  //嘛意思
    ps.executeUpdate();  //嘛意思
    //ps.execute();  //嘛意思
    ps.close();
    fis.close();
    out.println("ok!!!");
    %>第四步:显示图片(ShowImg.jsp)<%@ page language="java" import="java.sql.*"%> 
    <%@ page import="java.io.*"%> 
    <%@ page contentType="text/html;charset=gb2312"%><% 
    Class.forName("oracle.jdbc.driver.OracleDriver"); 
    String url="jdbc:oracle:thin:@lubin:1521:b2bdb"; 
    String image_id = (String) request.getParameter("ID");Connection con=DriverManager.getConnection(url,"demo","demo"); 
    PreparedStatement sql=con.prepareStatement("select * from test_img WHERE id = " + image_id); 
    ResultSet rs = sql.executeQuery(); rs.next(); 
    //输入img字段内容到in
    InputStream in = rs.getBinaryStream("img"); //以下可是任何处理,比如向页面输出: response.reset(); 
    //此处的image/jpeg似乎与显示的图片格式无关
    //因为我显示jsp和gif都没有错误
    response.setContentType("image/jpeg"); 
    byte[] b = new byte[1024]; 
    int len; 
    while((len=in.read(b)) >0) 
    response.getOutputStream().write(b,0,len); in.close(); 
    rs.close(); 
    %>
      

  3.   

    用这个试试第一步:建立数据库
    create table test_img(id number(4),name varchar(20),img long raw);第二步:(NewImg.html)<html><head><title>添加图片</title></head>
    <body>
    添加图片<br>
    <form method="post" action="insertNews.jsp">
    图像ID:<input name="id" size="10">
    <br>
    选择图像:<input type="file" name="image">
    <br>
    <input type="submit" value="上传" name="submit" size="25">
    <input type="reset" value="清除" name="clear" size="25">
    <br>
    </form>
    </body></html>第三步:插入数据库(InsertImg.jsp)<%@ page language="java"%>
    <%@ page contentType="text/html;charset=gb2312" %>
    <%@ page import="java.util.*" %>
    <%@ page import="java.sql.*"%>
    <%@ page import="java.text.*"%> 
    <%@ page import="java.io.*"%>  <%
    Class.forName("oracle.jdbc.driver.OracleDriver"); 
    String url="jdbc:oracle:thin:@lubin:1521:b2bdb"; 
    Connection con=DriverManager.getConnection(url,"demo","demo"); //插入数据库,在此处,表中有多少字段就要有多少个占位符(?)
    String sql="insert into test_img values (?,?,?)";
    //获取传值ID
    String id=request.getParameter("id");
    //获取image的路径
    String kk=request.getParameter("image");
    //转换成file格式
    File filename=new File(kk);//将文件的长度读出,并转换成Long型
    long l1=filename.length();
    int l2=(int)l1;//以流的格式赋值
    FileInputStream fis=new FileInputStream(filename);PreparedStatement ps =con.prepareStatement(sql);
    /**********************************************************************************
    ** 插入ID号,如果此处要插入空值的话,则可以用:ps.setString(1,"");
    ** 参数1:存放ID的字段在表中的位置是第1个(以下同理)
    ** 参数id:存放ID号的变量
    **********************************************************************************/
    ps.setString(1,id);ps.setString(2,filename.getName());
    /**********************************************************************************
    ** 以二进制形式将图片读取后插入表中。
    ** 参数3:存放图片的字段在表中的位置是第3个
    ** 参数fis:可以理解为文件名
    ** 参数l2:上传图片的长度
    **********************************************************************************/
    ps.setBinaryStream(3,fis,l2);
    //ps.setBinaryStream(3,fis,fis.available());
    ps.executeUpdate();
    //ps.execute();
    ps.close();
    fis.close();
    out.println("ok!!!");
    %>