我只想让用户上传图片,因为就只一点图片,而且量不是很多,所以不想用jsp  smartupload。
哪位能告诉我怎么使用io 流进行上传吗
  我的思路是这样的 
upload.jsp
<form action="testFile.jsp" enctype="multipart/form-data" method="get">
<input type="file" name="pic">
</form>testFile.jsp//我使用testfile.jsp 而不使用servlet是因为这个页面还要处理一些其他信息比喻说姓名修改等,我这个上传页面就是个 用户修改资料的页面。。
<%
String path=request.getParameter("pic");
FileInputStream in=new FileInputStream(path);但是我不知道这个path 到底是读的是服务器的路径还是client的路径
而且这个写文件应该是server的路径啊,我怎么让读的路径是client的路径
而写文件是server的路径,同时怎么传输这个文件流了?
%>

解决方案 »

  1.   

    不知道JSP是怎么实现的,但它可以做到
      

  2.   

    <%-- 
    文件名:do_upload.jsp 
    --%> 
    <%@ page contentType="text/html; charset=gb2312" language="java" 
    import="java.util.*,com.jspsmart.upload.*" errorPage="" %> 
    <html> 
    <head> 
    <title>文件上传处理页面</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
    </head> <body> 
    <% 
    // 新建一个SmartUpload对象 
    SmartUpload su = new SmartUpload(); 
    // 上传初始化 
    su.initialize(pageContext); 
    // 设定上传限制 
    // 1.限制每个上传文件的最大长度。 
    // su.setMaxFileSize(10000); 
    // 2.限制总上传数据的长度。 
    // su.setTotalMaxFileSize(20000); 
    // 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。 
    // su.setAllowedFilesList("doc,txt"); 
    // 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat, 
    jsp,htm,html扩展名的文件和没有扩展名的文件。 
    // su.setDeniedFilesList("exe,bat,jsp,htm,html,,"); 
    // 上传文件 
    su.upload(); 
    // 将上传文件全部保存到指定目录 
    int count = su.save("/upload"); 
    out.println(count+"个文件上传成功!<br>"); // 利用Request对象获取参数之值 
    out.println("TEST="+su.getRequest().getParameter("TEST") 
    +"<BR><BR>"); // 逐一提取上传文件信息,同时可保存文件。 
    for (int i=0;i<su.getFiles().getCount();i++) 

    com.jspsmart.upload.File file = su.getFiles().getFile(i); // 若文件不存在则继续 
    if (file.isMissing()) continue; // 显示当前文件信息 
    out.println("<TABLE BORDER=1>"); 
    out.println("<TR><TD>表单项名(FieldName)</TD><TD>" 
    + file.getFieldName() + "</TD></TR>"); 
    out.println("<TR><TD>文件长度(Size)</TD><TD>" + 
    file.getSize() + "</TD></TR>"); 
    out.println("<TR><TD>文件名(FileName)</TD><TD>" 
    + file.getFileName() + "</TD></TR>"); 
    out.println("<TR><TD>文件扩展名(FileExt)</TD><TD>" 
    + file.getFileExt() + "</TD></TR>"); 
    out.println("<TR><TD>文件全名(FilePathName)</TD><TD>" 
    + file.getFilePathName() + "</TD></TR>"); 
    out.println("</TABLE><BR>"); // 将文件另存 
    // file.saveAs("/upload/" + myFile.getFileName()); 
    // 另存到以WEB应用程序的根目录为文件根目录的目录下 
    // file.saveAs("/upload/" + myFile.getFileName(), 
    su.SAVE_VIRTUAL); 
    // 另存到操作系统的根目录为文件根目录的目录下 
    // file.saveAs("c:\temp\" + myFile.getFileName(), 
    su.SAVE_PHYSICAL); } 
    %> 
    </body> 
    </html> 
      

  3.   

    String path=request.getParameter("pic");
    FileInputStream in=new FileInputStream(path);
    ---------
    估计这样写不行,读取的是服务器的目录。
    参考smartupload的源代码,应该是用request.getInputStream读入客户端文件内容。
    用fileoutputstream.write写到服务器上。
      

  4.   


    难道没有人知道jsp 怎么做到的?
    第二个问题
    没有人能解答了...伤心ing
      

  5.   

    可以,就是简单的文件流读取,你可以参看简单的java 文件处理
    至于第二个问题,我没有明白你的意思
      

  6.   

    这是我的第二个问题都要沉下去了
    http://community.csdn.net/Expert/topic/4717/4717782.xml?temp=.602154
    读取流我会
    关键是怎么  从client端读文件 再传到 server
    再下来
    ruanjiantaotao(涛涛) :
    你确定就是简单的读取文件流?
    能提供一下代码么?
      

  7.   

    littlefools() 
    什么意思?
      

  8.   

    FileInputStream in=request.getInputStream()
    <form action="testFile.jsp" enctype="multipart/form-data" method="get">
    就会自动读取客户端的流,传到服务器端