JAVA plupload后台如何获取文件名、实例

2025-10-27 21:20:11

1、前端JS代码:

<script type="text/javascript">

$(function() {

$("#uploader").pluploadQueue({

runtimes : 'html4,html5,flash',//设置运行环境,会按设置的顺序,可以选择的值有html5,gears,flash,silverlight,browserplus,html4

flash_swf_url : '<%=basePath %>/js/lib/plupload_1_5_7/plupload/js/plupload.flash.swf',// Flash环境路径设置

silverlight_xap_url : '<%=basePath %>/js/lib/plupload_1_5_7/plupload/js/plupload.silverlight.xap',//silverlight环境路径设置

url : '<%=basePath %>/UploadServlet',//上传文件路径

max_file_size : '3gb',//100b, 10kb, 10mb, 1gb

chunk_size : '1mb',//分块大小,小于这个大小的不分块

unique_names : true,//生成唯一文件名

// 如果可能的话,压缩图片大小

// resize : { width : 320, height : 240, quality : 90 },

// 指定要浏览的文件类型

filters : [ {

title : 'Image files',

extensions : 'jpg,png,3gp,mp4,tif'

}, {

title : 'files',

extensions : 'bin,txt,doc'

} ],

init : {

FileUploaded : function(up, file, info) {//文件上传完毕触发

//console.info(up);

//console.info(file);

//console.info(info);

var response = $.parseJSON(info.response);

if (response.status) {

$('#f1').append('文件路径:<input type="text" name="fileUrl" value="'+response.fileUrl+'"/></br>');

$('#f1').append('文件名称:<input type="text" name="fileName" value="'+file.name+'"/></br>');

$('#f1').append('文件类型:<select type="text" name="fileType"><option value="6">测试</option><option value="5">桩机固件下载</option><option value="1">总量黑名单</option></select></br>');

$('#f1').append('版本号:<input type="text" name="fileVersion" value="01"/></br>');

}

}

}

});

});

function submitForm(){

    $('#f1').submit();

    }

</script>

JAVA plupload后台如何获取文件名、实例

2、前端HTML代码:

<body>

<form id="f1" action="<%=basePath %>systemManage/saveFileMessage!saveFileMessage.action" method="post">

<table border="0" style="width: 100%;">

<tr>

<td colspan="2">

<div id="uploader" style="width: 100%">您的浏览器没有安装Flash插件,或不支持HTML5!</div>

<!-- 

<button onclick="$('#uploader').pluploadQueue().start();">开始上传</button>

<button onclick="$('#uploader').pluploadQueue().stop();">停止上传</button>

-->

</td>

</tr>

</table>

</form>

<br>

 <a id="btn" href="javascript:void(0)"  class="easyui-linkbutton"  data-options="iconCls:'icon-save'"  onclick="submitForm()">保存</a>

</body>

JAVA plupload后台如何获取文件名、实例

3、WEB.xml 添加 SERVLT  UploadServlet

JAVA plupload后台如何获取文件名、实例

4、SERLERT 后台代码:获取文件名

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.ResourceBundle;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

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;

import org.apache.commons.io.FileUtils;

public class UploadServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

// String repositoryPath;

String uploadPath="";

private static final ResourceBundle bundle = ResourceBundle

.getBundle("config");

public UploadServlet() {

super();

}

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

}

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

response.setCharacterEncoding("UTF-8");

Integer chunk = null;// 分割块数

Integer chunks = null;// 总分割数

String tempFileName = null;// 临时文件吿

String fileName = "";

BufferedOutputStream outputStream = null;

if (ServletFileUpload.isMultipartContent(request)) {

try {

DiskFileItemFactory factory = new DiskFileItemFactory();

factory.setSizeThreshold(1024);

// factory.setRepository(new File(repositoryPath));// 设置临时目录

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setHeaderEncoding("UTF-8");

// upload.setSizeMax(5 * 1024 * 1024);// 设置附件朿ħ大小,超过这个大小上传会不成势

List<FileItem> items = upload.parseRequest(request);

for (FileItem item : items) {

if (item.isFormField()) {// 是文本域

if (item.getFieldName().equals("name")) {

tempFileName = item.getString();

} else if (item.getFieldName().equals("chunk")) {

chunk = Integer.parseInt(item.getString());

// System.out.println("当前文件块:" + (chunk + 1));

} else if (item.getFieldName().equals("chunks")) {

chunks = Integer.parseInt(item.getString());

// System.out.println("文件总分块:" + chunks);

}

} else {// 如果是文件类垿

if (tempFileName != null) {

String chunkName = item.getName();

fileName = item.getName();//真实文件名

if (chunk != null) {

chunkName = chunk + "_" + tempFileName;

}

File savedFile = new File(uploadPath, chunkName);

item.write(savedFile);

}

}

}

if (chunk != null && chunk + 1 == chunks) {

outputStream = new BufferedOutputStream(

new FileOutputStream(new File(uploadPath,

fileName)));

// 遍历文件合并

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

File tempFile = new File(uploadPath, i + "_"

+ tempFileName);

System.out.println("tempFileName:"+tempFileName);

byte[] bytes = FileUtils.readFileToByteArray(tempFile);

outputStream.write(bytes);

outputStream.flush();

tempFile.delete();

}

outputStream.flush();

}

//System.out.println("newFileName:"+newFileName);

Map<String, Object> m = new HashMap<String, Object>();

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

m.put("status", true);

m.put("fileUrl", uploadPath+ "/"

);

response.getWriter().write(JSONObject.fromObject(m).toString());

} catch (FileUploadException e) {

e.printStackTrace();

Map<String, Object> m = new HashMap<String, Object>();

m.put("status", false);

response.getWriter().write(JSONObject.fromObject(m).toString());

} catch (Exception e) {

e.printStackTrace();

Map<String, Object> m = new HashMap<String, Object>();

m.put("status", false);

response.getWriter().write(JSONObject.fromObject(m).toString());

} finally {

try {

if (outputStream != null)

outputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

@Override

public void init(ServletConfig config) throws ServletException {

GetPropertiesPam gp = new GetPropertiesPam();

uploadPath =gp.getGJPath();

File up = new File(uploadPath);

if (!up.exists()) {

up.mkdir();

}

}

}

JAVA plupload后台如何获取文件名、实例

5、获取文件信息,STRUTS 技术:

@Action(value = "saveFileMessage")

public void saveFileMessage() throws Exception {

log.info("固件保存");

request = ServletActionContext.getRequest();

response = ServletActionContext.getResponse();

String[] fileUrls = request.getParameterValues("fileUrl");

String[] fileNames = request.getParameterValues("fileName");

String[] fileTypes = request.getParameterValues("fileType");

String[] fileVersions = request.getParameterValues("fileVersion");

try {

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

filemanage = filemanageBusiness.get("from Filemanage where filetypes="+fileTypes[i]);

String msg = "文件路径:" + fileUrls[i] + " 文件名称:" + fileNames[i]

+ "<br/>";

log.info(msg);

filemanage.setSate(0);  

filemanage.setFilenames(fileNames[i]);

filemanage.setFilepaths(fileUrls[i]);

filemanage.setUpdates(new Date());

filemanage.setFileversion(Integer.parseInt(DateUtil.getFileVersion()+fileVersions[i]));

filemanage.setFileserials(filemanage.getFileserials()+1);

try {

filemanageBusiness.save(filemanage);

String resultString = "文件" + filemanage.getFilenames()

+ ",保存成功";

response.setCharacterEncoding("UTF-8");

response.getWriter().print(

"<script>alert('" + resultString + "');</script>");

response.getWriter().print(

"<script>parent.location.reload();</script>");

} catch (Exception e) {

log.error("文件上传失败"+e.getMessage());

}

}

} catch (Exception e) {

log.error("文件上传失败"+e.getMessage());

}

}

JAVA plupload后台如何获取文件名、实例

6、完成

JAVA plupload后台如何获取文件名、实例

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢