ie7的图像上传问题

时间:2011-07-04 16:09:28

标签: java internet-explorer file-upload

我从简单的html表单上传图片

 <form action="../OctetStreamReader" method="post"  accept="image/gif, image/jpeg">
 Your image: <input type="file" name="pic" id="pic" /><br />
 <input type="submit" value="Submit" />
 </form>

并且在OctetStreamReader内部我使用IOUtils

复制服务器上的图像
realPath = getServletContext().getRealPath(DESTINATION_DIR_PATH) + "/";
    PrintWriter writer = null;
    InputStream is = null;
    FileOutputStream fos = null;

    try {
        writer = response.getWriter();
    } catch (IOException ex) {
        log(OctetStreamReader.class.getName() + "has thrown an exception: "
                + ex.getMessage());
    }

    if (canInsert) {
        // String filename = request.getHeader("X-File-Name");
        String filename = utils.createFileName(ssn, userEmail, userId);
        try {
            ImageCompressor ic= new ImageCompressor();

            is = request.getInputStream();
            fos = new FileOutputStream(new File(realPath + filename));
            logger.info("avalible bytes :" + is.available());
            IOUtils.copy(is, fos);
            logger.info("inserting copied");

代码在IE以外的所有浏览器中都运行得非常好,尤其是IE7。 在IE7的情况下,在服务器上创建一个新文件,但文件大小为0kb。 如果是其他浏览器,如chrome,FF,safari,则会根据上传图像的实际大小创建新文件。 我无法找出问题,因为代码没有抛出任何异常。

请帮助..

谢谢!

2 个答案:

答案 0 :(得分:2)

您应该将enctype="multipart/form-data"属性添加到表单元素。

答案 1 :(得分:0)

我尝试使用Apache Commons文件上传,它运行良好