Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 文件上载代码在jsp中不起作用_Javascript_Html_Jsp - Fatal编程技术网

Javascript 文件上载代码在jsp中不起作用

Javascript 文件上载代码在jsp中不起作用,javascript,html,jsp,Javascript,Html,Jsp,文件上载代码不工作 上载文件XYZ时,我遇到此错误 请帮助我删除空路径值 系统找不到指定的路径 INFO: java.io.FileNotFoundException: null\XYZ.xls (The system cannot find the path specified) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.ja

文件上载代码不工作

上载文件XYZ时,我遇到此错误 请帮助我删除空路径值 系统找不到指定的路径

INFO: java.io.FileNotFoundException: null\XYZ.xls (The system cannot find the path specified)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at org.apache.commons.fileupload.disk.DiskFileItem.write(DiskFileItem.java:394)
at org.apache.jsp.UploadFile_jsp._jspService(UploadFile_jsp.java from :112)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:619)
INFO:java.io.FileNotFoundException:null\XYZ.xls(系统找不到指定的路径)
在java.io.FileOutputStream.open(本机方法)
位于java.io.FileOutputStream。(FileOutputStream.java:179)
位于java.io.FileOutputStream。(FileOutputStream.java:131)
位于org.apache.commons.fileupload.disk.DiskFileItem.write(DiskFileItem.java:394)
在org.apache.jsp.UploadFile\u jsp.\u jsp服务(UploadFile\u jsp.java from:112)
位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
位于org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
位于org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
位于org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
位于org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
位于org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
位于com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
位于com.sun.enterprise.web.peSessionLockingsStandardPipeline.invoke(peSessionLockingsStandardPipeline.java:91)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
位于org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
位于com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
位于com.sun.grizzly.http.ProcessorTask.InvokeApter(ProcessorTask.java:822)
位于com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
位于com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
在com.sun.grizzly.http.DefaultProtocolFilter.execute上(DefaultProtocolFilter.java:225)
位于com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
在com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)上
在com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)上
http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
位于com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
在com.sun.grizzly.SelectionKeyContextTask.call上(SelectionKeyContextTask.java:59)
位于com.sun.grizzly.ContextTask.run(ContextTask.java:71)
位于com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
位于com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
运行(Thread.java:619)
上传的代码是第一个html代码

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>File Upload Demo</title>
</head>
<body>
<center>
    <form method="post" action="UploadFile.jsp" enctype="multipart/form-data">
        Select file to upload:
        <input type="file" name="uploadFile" />
        <br/><br/>
        <input type="submit" value="Upload" />
    </form>
</center>

<form class="Manage-forms" action="login.jsp" method="post">
        <button class="Manage-button" type="submit" name="edit_submit" value="hello">
            <img src="Images\Edit_icon.png" title="Update"  alt="Edit" height="25"    width="25" border=0>
        </button>
</form>

</body>
</html>

文件上传演示
选择要上载的文件:


然后转到重定向页面

   <%@ page import="java.io.*,java.util.*" %>
   <%@ page import="javax.servlet.*" %>
   <%@ page import="javax.servlet.http.*" %>
   <%@ page import="org.apache.commons.fileupload.*" %>
    <%@ page import="org.apache.commons.fileupload.disk.*" %>
   <%@ page import="org.apache.commons.fileupload.servlet.*" %>
   <%@ page import="org.apache.commons.io.output.*" %>

<%
 File file ;
 int maxFileSize = 5000 * 1024;
 int maxMemSize = 5000 * 1024;
 ServletContext context = pageContext.getServletContext();
 String filePath = context.getInitParameter("file-upload");

// Verify the content type
 String contentType = request.getContentType();
 if ((contentType.indexOf("multipart/form-data") >= 0)) {

  DiskFileItemFactory factory = new DiskFileItemFactory();
  // maximum size that will be stored in memory
  factory.setSizeThreshold(maxMemSize);
  // Location to save data that is larger than maxMemSize.
  factory.setRepository(new File("d:\\temp"));

  // Create a new file upload handler
  ServletFileUpload upload = new ServletFileUpload(factory);
  // maximum file size to be uploaded.
  upload.setSizeMax( maxFileSize );
  try{ 
     // Parse the request to get file items.
     List fileItems = upload.parseRequest(request);

     // Process the uploaded file items
     Iterator i = fileItems.iterator();

     out.println("<html>");
     out.println("<head>");
     out.println("<title>JSP File upload</title>");  
     out.println("</head>");
     out.println("<body>");
     while ( i.hasNext () ) 
     {
        FileItem fi = (FileItem)i.next();
        if ( !fi.isFormField () )   
        {
        // Get the uploaded file parameters
        String fieldName = fi.getFieldName();
        String fileName = fi.getName();
        boolean isInMemory = fi.isInMemory();
        long sizeInBytes = fi.getSize();
        // Write the file
        if( fileName.lastIndexOf("\\") >= 0 ){
        file = new File( filePath + 
        fileName.substring( fileName.lastIndexOf("\\"))) ;
        }else{
        file = new File( filePath + 
        fileName.substring(fileName.lastIndexOf("\\")+1)) ;
        }
        fi.write( file ) ;
        out.println("Uploaded Filename: " + filePath + 
        fileName + "<br>");
        }
     }
     out.println("</body>");
     out.println("</html>");
  }catch(Exception ex) {
     System.out.println(ex);
  }
 }else{
  out.println("<html>");
  out.println("<head>");
  out.println("<title>Servlet upload</title>");  
  out.println("</head>");
  out.println("<body>");
  out.println("<p>No file uploaded</p>"); 
  out.println("</body>");
  out.println("</html>");
  }
%>

= 0)) {
DiskFileItemFactory=新的DiskFileItemFactory();
//将存储在内存中的最大大小
factory.setSizeThreshold(maxMemSize);
//保存大于maxMemSize的数据的位置。
setRepository(新文件(“d:\\temp”);
//创建新的文件上载处理程序
ServletFileUpload upload=新的ServletFileUpload(工厂);
//要上载的最大文件大小。
upload.setSizeMax(maxFileSize);
试试{
//解析请求以获取文件项。
List fileItems=upload.parseRequest(请求);
//处理上载的文件项
迭代器i=fileItems.Iterator();
out.println(“”);
out.println(“”);
println(“JSP文件上传”);
out.println(“”);
out.println(“”);
而(i.hasNext())
{
FileItem fi=(FileItem)i.next();
如果(!fi.isFormField())
{
//获取上传的文件参数
字符串fieldName=fi.getFieldName();
字符串文件名=fi.getName();
布尔值isInMemory=fi.isInMemory();
long-sizeInBytes=fi.getSize();
//写文件
如果(fileName.lastIndexOf(“\\”>)=0){
文件=新文件(文件路径+
fileName.substring(fileName.lastIndexOf(“\\”);
}否则{
文件=新文件(文件路径+
fileName.substring(fileName.lastIndexOf(“\\”+1));
}
fi.写入(文件);
out.println(“上传的文件名:+filePath+
文件名+“
”; } } out.println(“”); out.println(“”); }捕获(例外情况除外){ 系统输出打印项次(ex); } }否则{ out.println(“”); out.println(“”); out.println(“Servlet上传”); out.println(“”); out.println(“”); out.println(“没有上传文件”

”; out.println(“”); out.println(“”); } %>
可能线索在第一行
null\XYZ.xls
。文件的路径是
null
。null不是路径,它是错误
null\XYZ.xls(系统找不到指定的路径)
只说您的代码说它找不到
null
目录每当上载文件时只提供文件名。浏览器将剥离文件路径。