HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2016-07-13来源:

使用HTML5拖拽文件到浏览器并实现文件上传下载,html5的功能是越来越强大了,下面与大家分享下具体的实现代码,感兴趣的朋友可以参考下

先上代码,写的jsp页面,后台是tomcat服务器,所以页面里有一些java的代码,如果后台用其他语言可以无视:

代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@page import="java.io.*"%>

上传、下载文件

method="post" onsubmit="return upLoad();">

type="file" id="fileselect" name="fileselect[]" />

或者将文件拖拽到这里

<% //java代码,显示服务器上可以供下载的文件

File f = new File("G://defggg/");

File[] list = f.listFiles();

for (int i = 0; i < list.length; ++i) {

System.out.println(list[i].getName());

out.print("" + list[i].getName()

+ "
");

}

%>

Baidu
map

附上后台处理上传下载的servlet,用了smartUpLoad,不能很好的解决中文问题:

代码如下:

package com.hit.software;

import java.io.IOException;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.jspsmart.upload.Files;

import com.jspsmart.upload.SmartUpload;

/**

* Servlet implementation class UploadServlet

*/

@WebServlet("/UploadServlet")

public class UploadServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

private ServletConfig config;

final public void init(ServletConfig config) throws ServletException {

this.config = config;

}

/**

* @see HttpServlet#HttpServlet()

*/

public UploadServlet() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse

* response)

*/

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse

* response)

*/

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

// String s = request.getParameter("pic");

// System.out.println(s);

SmartUpload mySmartUpload = new SmartUpload();

try {

mySmartUpload.initialize(config, request, response);

mySmartUpload.setMaxFileSize(150 * 1024 * 1024);

mySmartUpload.setTotalMaxFileSize(150 * 1024 * 1024);

// mySmartUpload.setAllowedFilesList("doc,txt,rar,pdf,png");

mySmartUpload.setDeniedFilesList("exe");

mySmartUpload.upload();

Files f = mySmartUpload.getFiles();

int size = f.getCount();

for (int i = 0; i < size; ++i) {

String fileName = mySmartUpload.getFiles().getFile(i)

.getFileName();

fileName = new String(fileName.trim().getBytes(), "UTF-8"); //能解决部分中文问题

System.out.println("filename=" + fileName);

if (!fileName.equals("")) {

String path = "g:/defggg/" + fileName;

f.getFile(i).saveAs(path, SmartUpload.SAVE_PHYSICAL);

}

}

} catch (Exception e) {

e.printStackTrace();

System.out.println("Unable to upload the file.");

System.out.println("Error :" + e.toString());

}

response.sendRedirect("index.jsp");

}

}

代码如下:

package com.hit.software;

import java.io.File;

import java.io.IOException;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.jsp.JspFactory;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.PageContext;

import com.jspsmart.upload.SmartUpload;

import com.jspsmart.upload.SmartUploadException;

/**

* Servlet implementation class DownloadServlet

*/

@WebServlet("/DownloadServlet")

public class DownloadServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

private ServletConfig config;

/**

* @see HttpServlet#HttpServlet()

*/

public DownloadServlet() {

super();

// TODO Auto-generated constructor stub

}

final public void init(ServletConfig config) throws ServletException {

this.config = config;

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse

* response)

*/

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse

* response)

*/

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

String fileName = request.getParameter("filename");

System.out.println("down :"+fileName);

if (fileName == null) {

response.sendRedirect("index.jsp");

return;

}

fileName = "G://defggg//" + fileName;

File f = new File(fileName);

if (f.exists() && f.isFile()) {

SmartUpload su = new SmartUpload();

su.initialize(config, request, response);

su.setContentDisposition(null);

try {

su.downloadFile(fileName);

} catch (SmartUploadException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} else {

response.sendRedirect("index.jsp");

return;

}

}

}

2025公考·省考培训课程试听预约报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
推荐信息
Baidu
map