【问题标题】:upload image in java and save it on server. Without Html5在java中上传图像并将其保存在服务器上。没有 HTML5
【发布时间】:2012-11-17 04:20:36
【问题描述】:

我想使用 servlet 在服务器上上传图像文件,但我没有使用 HTML5。我在 stackoverflow 上看到过很多关于上传图片的问题,但大多数答案都是使用 PHP。我已经尝试通过使用 FileReader.readAsDataURL() 方法在 java 脚本中读取客户端的图像文件,然后将其发送到服务器端并通过 BASE64 解密再次制作一个 .jpg 文件。但是制作的文件不能被计算机读取。所以请帮我解决这个问题。其他一些上传方法也值得赞赏。请回答我有关 JAVA JAVA JAVA 的问题。我也想用 AJAX :) 谢谢。

我已经使用 servlet 上传了图像文件。它工作正常。我正在尝试使用 AJAX 上传图像。我通过 AJAX 请求调用相同的 servlet。但它不起作用。我使用的是 common-fileupload.jar 和 common-io.jar。片段看起来像: 列表项 = new FileUpload(new DiskFileItemFactory()) .parseRequest(请求);
此代码不适用于 Ajax 我将 dataForm 对象作为数据发送。

data = new FormData();
jQuery.each($('#file')[0].files, function(i, file) {
data.append('file-'+i, file);
});

ajax 请求如下:

$.ajax({
type : "POST",
data: data,
cache: false,
url : "/uploadImage/upload", 
contentType: false,    
processData: false,
success : function() {
alert("Done..!!");
}
});

【问题讨论】:

标签: java javascript ajax


【解决方案1】:

1)先创建一个html表单发送多方请求。你可以看到创建一个html表单上传文件的吹链接http://www.caucho.com/resin-3.0/jsp/tutorial/multipart.xtp

2) 创建一个 java 动态 web 项目并在其中添加一个 servert。 看看这个样本http://helloworldprograms.blogspot.com/2010/12/dynamic-web-project-eclipse.html

3) 创建一个 servlet 并使用此代码上传我使用的是 com.oreilly.servlet.MultipartRequest 库

private void uploadImage(HttpServletResponse response,HttpServletRequest request) throws IOException
{
    String dirName = request.getSession().getServletContext().getRealPath("/temp/");
    String fileName = null;
    MultipartRequest multi=null;

    try{
        multi= new MultipartRequest(request, dirName,1024*1024, "ISO-8859-1");
    }catch (IOException ex){
        ex.printStackTrace();

    }
    try{     
        Enumeration files = multi.getFileNames();

        while (files.hasMoreElements()){
            String name = (String) files.nextElement();
            fileName = multi.getFilesystemName(name);
        }
        String filePath = dirName +  System.getProperty("file.separator") + fileName;
        File clientImage = new File(filePath);



    } catch (Exception ioe){
        ioe.printStackTrace();
        logger.info("\nFile does not exist or cant delete\n");
    }       
}

【讨论】:

  • 我已经使用 servlet 上传了图像文件。它工作正常。我正在尝试使用 AJAX 上传图像。我通过 AJAX 请求调用相同的 servlet。但它不起作用。
  • 查看此链接,他们通过 ajax css-tricks.com/ajax-image-uploading 发布图片
猜你喜欢
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-19
  • 2011-07-09
  • 2015-03-02
  • 2015-11-07
  • 2013-09-09
相关资源
最近更新 更多