通过http请求发送文件

时间:2015-09-13 08:13:34

标签: javascript java d3.js httprequest

我正在学习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;

1 个答案:

答案 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是不对的。