当前位置: 代码迷 >> Java Web开发 >> 用uploadify3.2.1上传图片,在后台servlet怎么取动态传过来的值,本人初学者
  详细解决方案

用uploadify3.2.1上传图片,在后台servlet怎么取动态传过来的值,本人初学者

热度:743   发布时间:2016-04-14 09:01:21.0
用uploadify3.2.1上传图片,在后台servlet如何取动态传过来的值,本人菜鸟。
本帖最后由 Isenhart 于 2014-09-15 10:04:06 编辑
jsp页面如下


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link href="uploadify/uploadify.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="uploadify/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="uploadify/jquery.uploadify.min.js"></script>
<script type="text/javascript">
$(function() {
   $("#file_upload").uploadify( {
'buttonText' : 'BROWSE...',
'swf' : 'uploadify/uploadify.swf',
'fileTypeDesc':'Image Files',
'fileTypeExts':'*.jpg;*.jpeg;*.gif;*.png;*.bmp',
'formData'      : {'albumName' : ''},
'uploader' : 'servlet/Upload',
'debug' : true,
// Put your options here
 'onUploadStart': function (file) {  
                  $("#file_upload").uploadify("settings","albumName", "111");  
              }
  
});
});
</script>
</head>

<body>
<input type="file" name="file_upload" id="file_upload" />
<a href="javascript:$('#file_upload').uploadify('upload','*')">Upload</a>
<a href="javascript:$('#file_upload').uploadify('cancel')">Cancel</a>
</body>
</html>
});
});
</body>
</html>

红字部份就是动态传参部分。
在servlet,用request.getParameter("albumName")取不到传过来的albumName值,显示为null
网上有贴子说method设为get就可以,经本人试验,无论method设置为get还是post都没用,而且method设置成get时,调用的还是servlet的doPost()方法。
网上还有通过在servlet扁历FileItem来得到参数的,这个我也没试不出来,我打印出每个FileItem对像的值,真没有参数的值。
突然感觉我们用的不是同一个uploadify3.2.1,这个问题困扰我N长时间了,求解脱
------解决思路----------------------
传文件的form的enctype用的是multipart/form-data,二进制数据传输。。且在servlet中若想要获取multipart/form-data提交过来的数据就不能用request.getParam.....这个东西了。这个只能接收字符,不能接收文件。所以你得用request.getInputStream()读取流的方式然后自己解析,所有的参数与file内容等都可以大这个流里解析出来。不过很麻烦,你可以用apache的上传jar commons-fileupload来做上传,这样不用手动解析输入流,很方便的
  相关解决方案