我正在学习D3.js library。如何使用此示例中描述的httpRequest发送文件:chart?
我在eclipse中有一个本地服务器tomcat。是否可以使用它?
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//send file from here
}
然后抓住它:
d3.tsv("data.tsv", function(error, data) {
if (error) throw error;
答案 0 :(得分:1)
通过使用Apache公共jar,示例代码将是这样的
if(ServletFileUpload.isMultipartContent(request)){
try {
List<FileItem> multiparts = new ServletFileUpload(
new DiskFileItemFactory()).parseRequest(request);
for(FileItem item : multiparts){
if(!item.isFormField()){
String name = new File(item.getName()).getName();
item.write( new File(UPLOAD_DIRECTORY + File.separator + name));
}
}
//File uploaded successfully
request.setAttribute("message", "File Uploaded Successfully");
} catch (Exception ex) {
request.setAttribute("message", "File Upload Failed due to " + ex);
}
}
请查看File Upload Servlet以获取完整的代码段
使用AJAX上传文件:AJAX file upload
修改强>
从servlet调用javascript:
request.getRequestDispatcher("/some.jsp").forward(request,response)
在这个jsp中,只需调用Javascript即可。
但这不是一个好的设计。 Servlet正在服务器上执行,Javascript正在客户端执行。如果要从本地计算机上载文件,可以使用Java或Javascript的文件上载实用程序。从Servlet调用Javascript是不对的。