如何将使用 Dojo 上传程序选择的文件发布到 Dojo 1.7.5 的 servlet
How do I post a file selected using dojo Uploader to a servlet using Dojo 1.7.5
我一直在寻找一种正确的方法来将使用dojox.form.Uploader
选择的文件发布到我的servlet,但无法。似乎没有适当的道场文档,也没有太多的示例/演示/教程。将非常感谢您的回复。
我在 JSP 中的代码是
<tr>
<td colspan="9"><h2>File Upload<br /></h2><h3>To add 800#s using a file</h3></td>
</tr>
<tr>
<td colspan="9"><input type="file" data-dojo-type="dojox.form.Uploader" label ="Browse" multiple="false" id="uploader" onchange="check();" uploadOnSelect="true" url="/MyProject/app/ActionRequestHandlerServlet"/>
<div id="files" data-dojo-type="dojox.form.uploader.FileList" uploaderId="uploader" ></div>
</td>
</tr>`
Javascript代码包括以下内容
function check() {
alert(dijit.byId("uploader").value);
formPostObject.file = dijit.byId("uploader").value;
sendFile();
}
function sendFile() {
dojo.io.iframe.send({
url: "/MyProject/app/ActionRequestHandlerServlet", // Replace with yours
method: "post",
handleAs: "text",
form: dojo.byId("uploader"),
load: function(response, ioArgs) {
console.log("Upload OK", response, ioArgs);
return response;
},
error: function(response, ioArgs) {
console.log("Upload FAILED!!!", response, ioArgs);
return response;
}
});
}
上面的代码没有给我任何回应。在我的servlet中也有sysout语句也没有被引导。这会在 dojo 上给出一个 JS 错误.js -> 'length' 是空的或不是对象。因为我没有在我的代码中的任何地方使用长度。请你帮我解决这个问题。提前非常感谢。
这就是
使用 Dojo 1.6 对我有用的方法,但这在 1.7 中应该没有区别关键是enctype="multipart/form-data"需要Servlet 3.0才能真正工作。还有一个注释必须添加到 servlet @MultipartConfig
---.HTML--
dojo.require("dojox.form.Uploader");
dojo.require("dojox.form.uploader.FileList");
dojo.require("dojox.embed.Flash");
if(dojox.embed.Flash.available){
dojo.require("dojox.form.uploader.plugins.Flash");
}else{
dojo.require("dojox.form.uploader.plugins.IFrame");
}
</script>
<body>
<form method="post" action="ReadInputFilesServlet" id="myForm"
enctype="multipart/form-data" >
<fieldset>
<input name="uploadedfile" multiple="true" type="file" id="uploader"
dojoType="dojox.form.Uploader" label="Select Some Files" >
<input type="submit" label="Submit" dojoType="dijit.form.Button" />
<div id="files" dojoType="dojox.form.uploader.FileList"
uploaderId="uploader"></div>
</fieldset>
</form>
--- 在 servlet 中 --
@MultipartConfig(location="C:''TMP_FILES", fileSizeThreshold=1024*1024, maxFileSize=1024*1024*5, maxRequestSize=1024*1024*5*5)
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
Collection <Part> files = request.getParts();
Iterator <Part> iter = files.iterator();
while(iter.hasNext()){
Part part = iter.next();
String filename = getFileName(part);
System.out.println("File "+ filename);
BufferedReader rd = new BufferedReader(new InputStreamReader(part.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
rd.close();
}
}
public static String getFileName(Part filePart)
{
String header = filePart.getHeader("content-disposition");
for(String headerPart : header.split(";"))
{
if(headerPart.trim().startsWith("filename"))
{
return headerPart.substring(headerPart.indexOf('=') + 1).trim()
.replace("'"", "");
}
}
return null;
}
相关文章:
- Sails.js:同时发布文本输入和一个文件
- 如何使用javascript从文件夹中获取图像并发布直接链接
- 如何在dojo应用程序构建概要文件中加载json文件
- AJAX在Django的外部JS文件中发布
- 无法在我的JSON文件中发布数据
- Project和作为web应用程序发布的多个doGet()脚本文件——需要澄清
- 无法在ajax调用中发布绝对文件路径-无论我做什么,它都会返回斜杠
- Meteor发布/订阅无法从服务器文件夹中运行
- 为什么不是'当试图使用Ajax和外部PHP文件发布内容时,我的表单工作不正常,该文件接收两个字符串
- 如何使用Ajax将.json文件发布到ArangoDB
- I'我刚刚编译了一些dojo文件:如何在匿名包装器中调用函数
- 如何将使用 Dojo 上传程序选择的文件发布到 Dojo 1.7.5 的 servlet
- 通过javascript通过多个php文件发布数据
- 如何在创建dojo自定义构建时从层中排除dojo文件
- 需要Jquery文件发布帮助
- javascript (DOJO)文件缓存-客户端
- 如何在浏览器中使用超级代理将字符串作为文件发布
- 如何从本地副本访问DOJO文件
- Javascript 将数据从包含的文件发布到父级
- 使用 AJAX 从不同的 HTML 文件发布到 PHP