file=new FileReference();
file.addEventListener(Event.SELECT,onSelect);
file.addEventListener(ProgressEvent.PROGRESS,onProgess);
//上传附件
public function upload():void{
var allTypes:FileFilter=new FileFilter("所有文件(*.*)","*.*");
file.browse([allTypes]);
}
//选择文件
public function onSelect(event:Event):void{
trace(file.size);
if(file.size<=4*1024*1024){
var request: URLRequest = new URLRequest(serverURL+"/UploadY!fileUpload.action");
var vars:URLVariables = new URLVariables();//向后台传输的变量
vars.FileName = file.name; //文件名称
vars.FileType=file.type;//文件类型
vars.S_USER_ID=userInfo.S_USER_ID;//用户ID
//上传文件名
var date:Date=new Date();
var uploadFileName:String=date.fullYear.toString()+(date.month+1).toString()+date.date.toString()+date.hours.toString()+date.minutes.toString()+date.seconds.toString()+Math.round(Math.random()*100000000000000);
vars.uploadFileName=uploadFileName;
request.data = vars;//向后台请求传输的参数
request.method = URLRequestMethod.POST;//POST
try{
file.upload(request,"upload");
var fileObject:Object=new Object();
fileObject.FileName=file.name;
fileObject.UpLoadName=uploadFileName+file.type;
fileArray.addItem(fileObject);
// fileArray.refresh();
}catch(e:ExpectException){
Alert.show("上传失败!","提示");
}
}else{
Alert.show("文件超过4M","提示");
}
}
//文件进度
public function onProgess(event:ProgressEvent):void{
trace(event.bytesLoaded);
trace(event.bytesTotal);
var proc:uint=event.bytesLoaded/event.bytesTotal*100;
trace(proc);
}
package com.fcx.app.faq.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
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.struts2.ServletActionContext;
import org.apache.tomcat.jni.OS;
import com.fcx.app.core.action.DefaultComplexAction;
import com.fcx.app.core.service.GenericService;
public class UploadAction extends DefaultComplexAction {
private static final long serialVersionUID = 4459273642763849146L;
private static final String[] String = null;
private File upload;//定义的文件
private String uploadFileName;//上传文件的名称
private String savePath ;//上传得路径
private String fileEncodings;//读入文件编码类型
private String filename;//前台传过来的参数
private String S_USER_NAME;//前台传入的用户名
private String FileTyep;
public UploadAction(GenericService service) {
super(service);
// TODO Auto-generated constructor stub
}
public String fileUpload(){
//获取服务器路径
savePath = request.getRealPath("/");
//ServletActionContext获得前台传过来的参数
Map map = ServletActionContext.getRequest().getParameterMap();
//获取前台传入的文件名
String[] dir = (String[])map.get("FileName");
String filename = dir[0];
//创建上传文件名
dir=(String[])map.get("uploadFileName");
String uploadFileName=dir[0];
//String uploadFileName=UUID.randomUUID().toString();
//uploadFileName=uploadFileName.substring(0,8)+uploadFileName.substring(9,13)+uploadFileName.substring(14,18)+uploadFileName.substring(19,23)+uploadFileName.substring(24);
//获取用户ID
dir = (String[])map.get("S_USER_ID");
String S_USER_NAME= dir[0];
//获取文件类型
dir= (String[])map.get("FileType");
FileTyep=dir[0];
//创建上传路径
savePath+="\\WEB-INF\\"+S_USER_NAME;
InputStream is;
OutputStream os;
try {
//创建输入流
is = new FileInputStream(upload);
//创建文件
File tempFile=new File(savePath,uploadFileName+FileTyep);
//判断路径是否存在
if(!tempFile.getParentFile().exists()){
//创建路径
tempFile.getParentFile().mkdirs();
}
//判断文件是否存在
if(!tempFile.exists()){
//创建文件
tempFile.createNewFile();
}
//创建输出流
os=new FileOutputStream(tempFile);
byte[] buf=new byte[1024];
int length=0;
while((length=is.read(buf))>0)
{
//写入
os.write(buf, 0, length);
}
is.close();
os.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
}
public String deleteFile(){
//获取服务器路径
savePath = request.getRealPath("/");
//获取上传文件名
String uploadFileName=queryParams.get("UpLoadName");
String S_USER_NAME=queryParams.get("S_USER_ID");
//获取文件路径
savePath+="\\WEB-INF\\"+S_USER_NAME;
File file=new File(savePath,uploadFileName);
boolean tf = false;
if(file.exists()){
tf= file.delete();
}
System.out.println(tf);
return SUCCESS;
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String getSavePath() {
return savePath;
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public String getFileEncodings() {
return fileEncodings;
}
public void setFileEncodings(String fileEncodings) {
this.fileEncodings = fileEncodings;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public String getS_USER_NAME() {
return S_USER_NAME;
}
public void setS_USER_NAME(String s_USER_NAME) {
S_USER_NAME = s_USER_NAME;
}
public String getFileTyep() {
return FileTyep;
}
public void setFileTyep(String fileTyep) {
FileTyep = fileTyep;
}
}
分享到:
相关推荐
Struts1的fileupload的文件上传
在Struts2 Action中,我们需要创建一个List或数组来存储多个上传文件,每个文件对应一个FileItem或Part对象。 为了确保文件上传的安全性和稳定性,我们还需要考虑以下几点: 1. 设置合理的文件大小限制,防止大文件...
struts_fileupload文件上传Struts2
Struts2整合FileUpload是Java Web开发中常见的一项任务,它允许用户在应用程序中上传文件。Struts2是一个强大的MVC框架,而FileUpload则是一个处理文件上传的库,通常与Struts2结合使用,以提供更完善的文件上传功能...
文件上传功能允许用户从他们的设备上传文件到服务器。在Struts2中,这通常通过表单实现,表单包含一个`<input type="file">`元素,用户可以选择本地文件。Struts2的Action类会接收这个文件,并使用`Commons ...
java 文件上传(包括struts2文件上传,smartupload,基于apatch 的fileupload的文件上传):该文件包括文件上传的多个实例:有基于strtus2自带的文件上传实例、smartupload文件实例 和基于aptche自带的fileupload 的...
`FileInfo`是自定义的类,包含`File`对象和`String`对象,分别表示上传文件的实际内容和文件名。 1. **配置Struts2的文件上传** 在`struts.xml`配置文件中,为需要支持文件上传的Action添加`params`和`fileUpload`...
Struts2是一个流行的Java web开发框架,用于构建企业级应用...无论是使用List集合还是数组,核心原理都是相同的,只是接收上传文件的对象类型不同。了解并掌握这一特性,对于开发支持文件上传功能的web应用至关重要。
FileUpload库能解析这种编码格式的请求,将其拆分成多个部分,每个部分对应一个表单字段或上传文件。 2. **流式处理**: - FileUpload库支持流式处理,这意味着它可以在不完全加载整个请求到内存的情况下处理文件...
在Struts2的配置文件中,我们可以定义这些规则,例如限制上传文件的大小,只接受特定类型的文件(如图片、文档等)。此外,我们还需要关注安全问题,防止恶意文件上传。 文件上传的实现通常包括以下几个步骤: 1. ...
这个"Struts2+上传文件源码"是一个演示如何在Struts2框架下实现文件上传的示例代码。 首先,我们来理解上传文件的基本流程。在Struts2中,文件上传是通过`Commons FileUpload`库来处理的,这是一个Apache提供的开源...
实现Struts2文件上传,你需要在Struts配置文件(通常为struts.xml)中配置相关的拦截器,例如`params` 和 `fileUpload` 拦截器。`params` 拦截器负责处理表单参数,而`fileUpload` 拦截器处理文件上传。在Action类中...
在Struts2中,我们首先需要在`struts.xml`配置文件中添加相关的拦截器(interceptor)来处理文件上传。`struts.multipart.parser`属性应设置为`jakarta`,这是Struts2处理文件上传的方式。例如: ```xml ...
在实际开发中,为了防止DoS攻击和确保上传安全,你需要对文件大小进行限制,并验证上传文件的扩展名,确保只有特定类型的文件才能被接受。 总结来说,Struts1.2与Commons-Fileupload的结合使用,提供了一个简单而...
在Struts2中,文件上传功能是一项常用的功能,允许用户通过Web表单上传文件到服务器。本篇将深入探讨Struts2中的文件上传机制、步骤以及常见问题。 首先,我们要理解文件上传的基本原理。在Web应用中,文件上传通常...
struts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileupload
同时,我们还需要配置`struts.multipart.saveDir`属性,指定临时文件保存的位置,以及`struts.multipart.maxSize`,限制上传文件的最大大小。 在视图层,通常会有一个HTML表单,使用`enctype="multipart/form-data...
总结来说,实现Struts2批量上传文件涉及到的技术点包括Struts2拦截器、Apache Commons FileUpload、Action类的文件处理以及前端的文件验证。通过这些技术,我们可以创建一个稳定且功能完备的文件上传系统,既能处理...
Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的...