java jquery上传文件,java 文件上传

一、前端页面

1、html

(1)设置input 的type类型为file,代表 用于文件上传。

(2)accept属性,它规定能够通过文件上传进行提交的文件类型。accept值是 mime 类型列表,多个类型之间用逗号隔开

(3)multiple 属性是 html5 中的新属性。属性规定输入字段可选择多个值。多文件上传

2、js

add: function () {

var file = document.getelementbyid("addfile").files[0];

if (file == null) {

toastr.error('请上传文件');

return false;

}

// 创建form对象

var param = new formdata();

// 通过append向form对象添加数据

param.append('file', file);

param.append('token', $('#token').val());

// 上传需要将对应的文件类型上传的数据库

param.append('filetype', filetype);

$.ajax({

cache: false,

type: "post",

url: backbasepath + '/apia/v1/file/uploadfile',

data: param,

async: true,

contenttype: false,

processdata: false,

success: function (data) {

data = eval("(" + data + ")");

if ('000000' == data.code) {

toastr.success(data.msg);

//上传成功之后清楚掉之前选择的文件

$("#addfile").val("");

// 上传成功之后进行table的重新加载

$('#fileslist').datatable().ajax.reload();

} else if ('900000' == data.code) {

toastr.error('上传失败!');

} else {

toastr.error(data.msg);

}

$("#upload").modal('hide');

},

error: function () {

toastr.error('上传失败!');

$("#upload").modal('hide');

}

});

},

二、后端代码

// 上传文件

@requestmapping("/uploadfile")

public object upload(httpservletrequest request, @requestparam(required = false) multipartfile file) {

string result = null;if (null != file && !file.isempty()) {

try {

// 检查文件大小

long filesize = file.getsize();

if (filesize > 1 * 1024 * 1024) {

return requestresponsetool.getjsonmessage(respcode.repeat, "上传失败!上传的文件大小超出了1m限制!");

}

// 检查文件mime类型

string contenttype = file.getcontenttype();

list types = new arraylist();

//扩展名 doc dot

types.add("application/msword");

//扩展名 docx

types.add("application/vnd.openxmlformats-officedocument.wordprocessingml.document");

//扩展名 pdf

types.add("application/pdf");

//扩展名 txt

types.add("text/plain");

//扩展名 wps

types.add("application/vnd.ms-works");

//扩展名 xla xlc xlm xls xlt xlw

types.add("application/vnd.ms-excel");

if (!types.contains(contenttype)) {

return requestresponsetool.getjsonmessage(respcode.repeat, "上传失败!不允许上传此类型的文件!");

}

// 获取原始文件名

string originalfilename = file.getoriginalfilename();

string path = filepath;

path = path + "/upload/";//定义位绝对路径

file parent = new file(new file(path).getabsolutepath());

system.out.println("\tparent=" + parent);

if (!parent.exists()) {

parent.mkdirs();

}

date date = new date();

simpledateformat dateformat = new simpledateformat("yyyy-mm-dd");

map m = new hashmap();

// 根据文件名称进行查询,如果存在则更新否则新增

map filemap = knowledgeservice.getfilebyname(originalfilename);

// 如果能查询出对应的数据,则进行更新操作

if(filemap !=null && filemap.size() >0){

string id =filemap.get("id").tostring();

string oldfilename =filemap.get("file_name").tostring();

// 找到之前的文件,如果存在则删除

file oldfile = new file( path+"/"+oldfilename);

if (oldfile.exists()) {

oldfile.delete();

}

// 保存当前的文件

file.transferto(new file(parent, oldfilename));

// 更新文件表中的大小

m.put("id", id);

m.put("file_size", filesize);

result = knowledgeservice.update(m);

}

// 如果查不到数据,则进行新增操作

else {

// 新文件名称

string filename = uuid.randomuuid().tostring();

string suffix = "";

int beginindex = originalfilename.lastindexof(".");

if (beginindex != -1) {

suffix = originalfilename.substring(beginindex);

}

// 执行保存文件

file.transferto(new file(parent, filename + suffix));

// 存放的文件路径

string file_path = "/upload/" + filename + suffix;

//id

string knowledgeid = idcode.knowledgeid + idtool.getwebuserid() + "";

//文件表id

string file_id = idcode.fileid + idtool.getwebuserid() + "";

//文件逻辑名称(和路径中的名称保持一致)

string file_name = filename + suffix;

// 知识资源表中的主键

m.put("id", knowledgeid);// 文件id

m.put("file_id", file_id);// 创建时间

m.put("create_time", dateformat.format(date));

m.put("file_name", file_name);

m.put("file_real_name", originalfilename);

m.put("file_path", file_path);

m.put("file_size", filesize);

// 执行新增操作

result = knowledgeservice.add(m);

}

return result;

} catch (exception ex) {

ex.printstacktrace();

}

}

return result;

}

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. jQuery实现文件功能: HTML代码: ``` <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="file" id="file"> <input type="button" value="上" id="upload"> </form> <div id="message"></div> ``` JavaScript代码: ``` $(document).ready(function(){ $('#upload').click(function(){ var file_data = $('#file').prop('files')[0]; var form_data = new FormData(); form_data.append('file', file_data); $.ajax({ url: 'upload.php', dataType: 'text', cache: false, contentType: false, processData: false, data: form_data, type: 'post', success: function(response){ $('#message').html(response); }, error: function(response){ $('#message').html('上失败'); } }); }); }); ``` 2. Java实现文件功能: HTML代码: ``` <form action="upload.jsp" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上"> </form> ``` Java代码: ``` import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class UploadServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (!isMultipart) { out.println("<html><head><title>文件</title></head><body>"); out.println("<p>请上文件</p>"); out.println("</body></html>"); return; } DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(1024 * 1024); File tempDir = new File("d:/temp"); tempDir.mkdirs(); factory.setRepository(tempDir); ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("UTF-8"); upload.setSizeMax(1024 * 1024 * 10); try { List<FileItem> items = upload.parseRequest(request); Iterator<FileItem> iter = items.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); if (!item.isFormField()) { String fileName = item.getName(); String filePath = "d:/upload/" + fileName; File uploadedFile = new File(filePath); item.write(uploadedFile); } } out.println("<html><head><title>文件</title></head><body>"); out.println("<p>上成功</p>"); out.println("</body></html>"); } catch (FileUploadException e) { out.println("<html><head><title>文件</title></head><body>"); out.println("<p>上失败</p>"); out.println("</body></html>"); } catch (Exception e) { out.println("<html><head><title>文件</title></head><body>"); out.println("<p>上失败</p>"); out.println("</body></html>"); } out.close(); } } ``` 注意:使用Java实现文件功能需要引入Apache Commons FileUpload库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值