请教一个问题后台用如下方式接收图片流:
ServletInputStream inStream = request.getInputStream();需测试、前台客户端需怎么传才用这种形式接收请给个客户端例子,后台如何接收?

解决方案 »

  1.   

    页面form里面加上enctype=multipart/form-data属性
    然后form里面用<input type="file" name="fileName" >就可以了
      

  2.   

    看看 struts 的文件上传组件吧。
      

  3.   

    我将源码贴出,请参考(我给你的是多个文件上传Demo,单个文件上传,只需将Action中的file以及fileFileName属性类型改成非集合或数组型的即可):jsp页面的body:
    <body>
    <s:form action="upload" method="post" enctype="multipart/form-data">
    <s:file name="file" size="20"></s:file>
    <s:file name="file" size="20"></s:file>
    <s:file name="file" size="20"></s:file>
    <s:file name="file" size="20"></s:file>
    <s:submit name="submit" value="submit"></s:submit>
    </s:form>
    </body>服务器端代码:
    public class UploadAction extends ActionSupport implements Serializable{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    /**
     * 文件上传文件名为file+FileName固定写法
     */
    private File[] file;
    private String[] fileFileName;
    private String[] fileContentType; // public File getFile() {
    // return file;
    // }
    // public void setFile(File file) {
    // this.file = file;
    // }
    // public String getFileFileName() {
    // return fileFileName;
    // }
    // public void setFileFileName(String fileFileName) {
    // this.fileFileName = fileFileName;
    // }
    // public String getFileContentType() {
    // return fileContentType;
    // }
    // public void setFileContentType(String fileContentType) {
    // this.fileContentType = fileContentType;
    // } public String[] getFileFileName() {
    return fileFileName;
    } public File[] getFile() {
    return file;
    } public void setFile(File[] file) {
    this.file = file;
    } public void setFileFileName(String[] fileFileName) {
    this.fileFileName = fileFileName;
    } public String[] getFileContentType() {
    return fileContentType;
    } public void setFileContentType(String[] fileContentType) {
    this.fileContentType = fileContentType;
    }

    public String execute() throws Exception {
    for (int i = 0; i < this.file.length; i++) {
    System.out.println(i);
    InputStream is = new FileInputStream(this.file[i]);
    // request.getRealpath()方法已经过时
    // String root = ServletActionContext.getRequest().getRealPath("/upload");
    /* 同时提醒下你在工程的WebRoot目录下面见一个upload folder名字当然可以随便起了 */
    String str =        ServletActionContext.getServletContext().getRealPath("/upload");
    File f = new File(str, this.fileFileName[i]);
    OutputStream os = new FileOutputStream(f); byte[] b = new byte[10000000];
    while (is.read(b) != -1) {
    System.out.println(b.length);
    os.write(b, 0, b.length);
    }
    is.close();
    os.close();
    }
    return SUCCESS;
    }
    }关于文件上传更详细的内容,如:限制文件上传大小啊,文件上传类型啊,还有文件上传后临时文件存储的问题,你若想了解,我可以跟你一起探讨。希望以上代码对你有帮助!