【发布时间】:2014-02-25 10:44:40
【问题描述】:
我正在开发一个登录页面,该页面具有 enctype multipart/formdata 的形式,其中包含用户输入任何语言数据的输入字段。我正在使用 ajax (FormData) 将数据发送到服务器,在服务器上我无法正确获取数据,因为我无法转换为 unicode。我已将页面编码设置为 utf-8。我猜标题有问题。 请有人帮帮我。
这是我的代码:
客户:
var formdata=new FormData();
formdata.append("servname",servname);
formdata.append("disptype1",disptype1);
formdata.append("text",text);
formdata.append("back",back);
formdata.append("servtype",servtype);
formdata.append("caption",caption);
formdata.append("selsubservices",selsubservices);
formdata.append("action","addinfo");
formdata.append("iconfile",iconfile);
$.ajax({
type: "POST",
url: 'settingServlet',
data: formdata,
//dataType: 'json',
//contentType: "multipart/form-data",
//processData: false,
contentType:false,
processData:false,
success: function (response) {
processAddResponse(response);
},
error: function (error) {
alert("Error occured at" +error);
}
});
服务器:
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart)
{
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload uploads = new ServletFileUpload(factory);
List<FileItem> formItems = uploads.parseRequest(request);
if (formItems != null && formItems.size() > 0)
{
for (FileItem item : formItems)
{
if (item.isFormField())
{
//upload formdata except files
String fieldname = item.getFieldName();
if (fieldname.equals("roomname"))
{
name = item.getString();//data corrupts here.
name = new String(roomname.getBytes("iso-8859-1"),"UTF-8");
name = convert(roomname);
name = JUtility.toHTML(roomname);
}
}
}
【问题讨论】:
标签: java jquery ajax forms multipartform-data