Javascript 最后一个文件完成后的ajax多文件上载警报
我用jsp和ajax建立了一个多文件上传表单 这是我的密码 jspJavascript 最后一个文件完成后的ajax多文件上载警报,javascript,java,ajax,jsp,Javascript,Java,Ajax,Jsp,我用jsp和ajax建立了一个多文件上传表单 这是我的密码 jsp Загрузка файлов .td{ 瓦林:顶 } 函数上传(){ var x=document.getElementById(“计划上传”); 对于(var i=0;i
Загрузка файлов
.td{
瓦林:顶
}
函数上传(){
var x=document.getElementById(“计划上传”);
对于(var i=0;i”;
对于(var i=0;i'+input.files.item(i).name+'';
}
output.innerHTML+='';
}
函数errorHandlerPlanUpload(事件){
警报(“бббззззззззззззззз
window.opener.location.reload();
window.close()
}
函数abortHandlerPlanUpload(事件){
警报(“аазааааааааааааааа
window.opener.location.reload();
window.close();
}
Загрузить файлы
服务器端java
package com.ieml.servlets.plan;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;
import com.ieml.Global;
import com.ieml.util.*;
public class MultipleFileUploadServlet extends javax.servlet.http.HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
//PrintWriter out = response.getWriter();
String path = com.ieml.Global.getUploadDirectory();
Integer type= ServletUtilities.getIntParameter(request, "par_type");
if(path == null)
{
ServletUtilities.forwardErrorPage(request, response, "Не указано место хранения файлов");
return;
}
if(type==null)
{
ServletUtilities.forwardErrorPage(request, response, "Не указан тип плана");
return;
}
else
{
switch(type)
{
case 1:path+="/plans/incoming/"; break;
case 2:path+="/plansMag/incoming/";break;
case 3:path+="/plansSPO/incoming/";break;
default:break;
}
}
boolean isMultipart = ServletFileUpload.isMultipartContent(new ServletRequestContext(request));
if (isMultipart)
{
try
{
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
List<?> items = upload.parseRequest(request);
Iterator<?> iter = items.iterator();
while(iter.hasNext())
{
FileItem item = (FileItem)iter.next();
if (!item.isFormField())
{
String fileName = item.getName();
if(!fileName.endsWith(".xml") &&!fileName.endsWith(".XML") &&
!fileName.endsWith(".osf") && !fileName.endsWith(".OSF") &&
!fileName.endsWith(".zsf") && !fileName.endsWith(".ZSF")&&
!fileName.endsWith(".plax") && !fileName.endsWith(".PLAX")
)
{
ServletUtilities.forwardErrorPage(request, response, "Поддерживаемые форматы файлов: .xml, .osf, .zsf, .plax");
return;
}
try (Connection conn = Global.getConnection()){
File f = new File(path, fileName);
if(f.exists())
{
boolean success=f.delete();
if(!success)
{
try {
System.err.println("Не могу удалить файл "+f.getCanonicalPath());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
File uploadedFile = new File(path, fileName);
try
{
item.write(uploadedFile);
}
catch(Exception e)
{
e.printStackTrace();
log(e.getMessage());
ServletUtilities.forwardErrorPage(request, response, "Не могу записать файл.");
}
}
break;
}
}
}
catch(SQLException e){
e.printStackTrace();
}
catch(FileUploadException fue){
fue.printStackTrace();
log(fue.getMessage());
ServletUtilities.forwardErrorPage(request, response, "Не могу принять файл.");
}
}
}
}
package com.ieml.servlets.plan;
导入java.io.*;
导入java.sql.*;
导入java.util.*;
导入javax.servlet.*;
导入javax.servlet.http.*;
导入org.apache.commons.fileupload.*;
导入org.apache.commons.fileupload.disk.*;
导入org.apache.commons.fileupload.servlet.*;
导入com.ieml.Global;
导入com.ieml.util.*;
公共类multipleUploadServlet扩展了javax.servlet.http.HttpServlet{
私有静态最终长serialVersionUID=1L;
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
doPost(请求、响应);
}
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException
{
//PrintWriter out=response.getWriter();
字符串路径=com.ieml.Global.getUploadDirectory();
整型=ServletUtilities.getIntParameter(请求,“par_类型”);
if(路径==null)
{
ServletUtilities.forwardErrorPage(请求、响应,“https://www.ServletUtilities.forwardErrorPage”);
返回;
}
if(type==null)
{
ServletUtilities.forwardErrorPage(请求、响应,“https://www.ServletUtilities.forwardErrorPage”);
返回;
}
其他的
{
开关(类型)
{
案例1:路径+=“/计划/传入/”中断;
案例2:路径+=“/plansMag/incoming/”中断;
案例3:路径+=“/plansSPO/incoming/”中断;
默认:中断;
}
}
布尔值isMultipart=ServletFileUpload.isMultipartContent(新的ServletRequestContext(请求));
if(isMultipart)
{
尝试
{
FileItemFactory=new DiskFileItemFactory();
ServletFileUpload upload=新的ServletFileUpload(工厂);
上传。setHeaderEncoding(“UTF-8”);
列表项=upload.parseRequest(请求);
迭代器iter=items.Iterator();
while(iter.hasNext())
{
FileItem=(FileItem)iter.next();
如果(!item.isFormField())
{
字符串文件名=item.getName();
如果(!fileName.endsWith(“.xml”)和&!fileName.endsWith(“.xml”)&&
!fileName.endsWith(“.osf”)和&!fileName.endsWith(“.osf”)&&
!fileName.endsWith(“.zsf”)和&!fileName.endsWith(“.zsf”)&&
!fileName.endsWith(“.plax”)和&!fileName.endsWith(“.plax”)
)
{
ServletUtilities.forwardErrorPage(请求、响应,“Пжжжааааааааааааааааа;
返回;
}
try(Connection conn=Global.getConnection()){
文件f=新文件(路径、文件名);
如果(f.exists())
{
布尔成功=f.delete();
如果(!成功)
{
试一试{
系统错误打印(“ааМааа?
package com.ieml.servlets.plan;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;
import com.ieml.Global;
import com.ieml.util.*;
public class MultipleFileUploadServlet extends javax.servlet.http.HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
//PrintWriter out = response.getWriter();
String path = com.ieml.Global.getUploadDirectory();
Integer type= ServletUtilities.getIntParameter(request, "par_type");
if(path == null)
{
ServletUtilities.forwardErrorPage(request, response, "Не указано место хранения файлов");
return;
}
if(type==null)
{
ServletUtilities.forwardErrorPage(request, response, "Не указан тип плана");
return;
}
else
{
switch(type)
{
case 1:path+="/plans/incoming/"; break;
case 2:path+="/plansMag/incoming/";break;
case 3:path+="/plansSPO/incoming/";break;
default:break;
}
}
boolean isMultipart = ServletFileUpload.isMultipartContent(new ServletRequestContext(request));
if (isMultipart)
{
try
{
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
List<?> items = upload.parseRequest(request);
Iterator<?> iter = items.iterator();
while(iter.hasNext())
{
FileItem item = (FileItem)iter.next();
if (!item.isFormField())
{
String fileName = item.getName();
if(!fileName.endsWith(".xml") &&!fileName.endsWith(".XML") &&
!fileName.endsWith(".osf") && !fileName.endsWith(".OSF") &&
!fileName.endsWith(".zsf") && !fileName.endsWith(".ZSF")&&
!fileName.endsWith(".plax") && !fileName.endsWith(".PLAX")
)
{
ServletUtilities.forwardErrorPage(request, response, "Поддерживаемые форматы файлов: .xml, .osf, .zsf, .plax");
return;
}
try (Connection conn = Global.getConnection()){
File f = new File(path, fileName);
if(f.exists())
{
boolean success=f.delete();
if(!success)
{
try {
System.err.println("Не могу удалить файл "+f.getCanonicalPath());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
File uploadedFile = new File(path, fileName);
try
{
item.write(uploadedFile);
}
catch(Exception e)
{
e.printStackTrace();
log(e.getMessage());
ServletUtilities.forwardErrorPage(request, response, "Не могу записать файл.");
}
}
break;
}
}
}
catch(SQLException e){
e.printStackTrace();
}
catch(FileUploadException fue){
fue.printStackTrace();
log(fue.getMessage());
ServletUtilities.forwardErrorPage(request, response, "Не могу принять файл.");
}
}
}
}
function upload(){
var x = document.getElementById("plan_upload");
var noOfFiles = x.files.length;
var i=0;
for (i = 0; i < noOfFiles; i++)
{
var file = x.files[i];
var plan_type='${param.par_type}'
var formdata = new FormData();
formdata.append("plan_upload", file);
var ajax = new XMLHttpRequest();
ajax.cur_number=(i+1);
ajax.total_number=x.files.length;
ajax.addEventListener("error", errorHandlerPlanUpload, false);
ajax.addEventListener("abort", abortHandlerPlanUpload, false);
ajax.onreadystatechange = function ()
{
if (ajax.readyState==4 && ajax.status==200)
{
var total_number = ajax.total_number;
var cur_number= ajax.cur_number;
alert('i= '+i+' total files '+noOfFiles ) // i always equals noOfFiles
if(i == noOfFiles-1){ //Check if last file
alert('Загрузка файлов успешно завершена!');// upload successfull
window.opener.location.reload()
window.close();
}
}
}
ajax.open("POST", "MultipleFileUpload?par_type="+plan_type);
ajax.send(formdata);
}
}
function upload(){
var x = document.getElementById("plan_upload");
var noOfFiles = x.files.length;
for (var i = 0; i < noOfFiles; i++)
{
var file = x.files[i];
var plan_type='${param.par_type}'
var formdata = new FormData();
formdata.append("plan_upload", file);
var ajax = new XMLHttpRequest();
ajax.cur_number=(i+1);
ajax.total_number=x.files.length;
ajax.addEventListener("error", errorHandlerPlanUpload, false);
ajax.addEventListener("abort", abortHandlerPlanUpload, false);
ajax.onreadystatechange = function ()
{
if (ajax.readyState==4 && ajax.status==200)
{
var total_number = ajax.total_number;
var cur_number= ajax.cur_number;
if(cur_number==total_number)
{
if(i == noOfFiles-1){ //Check if last file
alert('Загрузка файлов успешно завершена!');// upload successfull
}
window.opener.location.reload()
window.close();
}
}
}
ajax.open("POST", "MultipleFileUpload?par_type="+plan_type);
ajax.send(formdata);
}
}
function upload()
{
var x = document.getElementById("plan_upload");
var numOfFiles= x.files.length;
for (var i = 0; i < numOfFiles; i++)
{
var file = x.files[i];
var plan_type='${param.par_type}'
var formdata = new FormData();
formdata.append("plan_upload", file);
var ajax = new XMLHttpRequest();
ajax.addEventListener("error", errorHandlerPlanUpload, false);
ajax.addEventListener("abort", abortHandlerPlanUpload, false);
ajax.onreadystatechange = function ()
{
if (ajax.readyState==4 && ajax.status==200)
{
if(i== numOfFiles-1)
{
alert('Загрузка файлов успешно завершена!');
window.opener.location.reload()
window.close();
}
}
}
ajax.open("POST", "MultipleFileUpload?par_type="+plan_type,false);
ajax.send(formdata);
}
}