【问题标题】:Send a file through an http request通过 http 请求发送文件
【发布时间】:2015-09-13 08:13:34
【问题描述】:

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

【问题讨论】:

标签: javascript java d3.js httprequest


【解决方案1】:

通过使用Apache common 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获取完整代码sn-p

使用 AJAX 上传文件:AJAX file upload

编辑

从 servlet 调用 javascript:

   request.getRequestDispatcher("/some.jsp").forward(request,response)

在这个jsp中,只要调用Javascript。

但这不是一个好的设计。 Servlet 在服务器端执行,Javascript 在客户端执行。如果您想从本地机器上传文件,您可以使用 Java 或 Javascript 的文件上传实用程序。从 Servlet 调用 Javascript 是不对的。

【讨论】:

  • 谢谢,那么我如何从 javascript 中捕获它? -> d3.tsv("data.tsv", function(error, data)
  • 在上例的 index.jsp 中添加 java 脚本
猜你喜欢
  • 1970-01-01
  • 2013-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-23
相关资源
最近更新 更多