上传文件:
action:
public class FileUpLoadImp extends ActionSupport implements FileUpLoad {
//上传文件保存的基本路径,不包含需要动态创建的目录
private String saveDir=System.getProperty("user.dir")+File.separator+"flv";
//上传文件
private File file;
//上传文件名
private String fileFileName;
private FileUpLoadService fservices;
private String title;
private UserInfo user;
/**
* 重写父类超大小限制异常抛出方法
* */
@Override
public void addActionError(String anErrorMessage) {
//这里要先判断一下异常,是文件超过大小限制才处理
if (anErrorMessage.startsWith("the request was rejected because its size")) {
//将信息替换掉
super.addActionError("您上传的附件过大,请确保单次所上传的附件大小总和没有超过100Mb!");
} else {
//不是超限制则不管它
super.addActionError(anErrorMessage);
}
}
@Override
public String upLoadFileVedio() throws IOException {
//验证格式
System.out.println(title+":"+user.getUsername()+":"+user.getPhone());
if(FileUpLoadUtils.checkVideoType(this.getFileFileName())){
/**处理上传视频保存路径**/
//创建动态路径拼接上固定路径
// UserInfo userInfo=(UserInfo)ServletActionContext.getRequest().getSession().getAttribute("user");
UserInfo userInfo=new UserInfo();
userInfo.setId(22);
saveDir= saveDir+File.separator+userInfo.getId();
//处理路径不存在则创建
FileUpLoadUtils.makeDir(saveDir);
//逻辑处理重命名文件
setFileFileName(FileUpLoadUtils.changeFileName(getFileFileName()));
//将路径及文件名拼接copy文件及返回客户端
saveDir=saveDir+File.separator+getFileFileName();
if(fservices.saveFile(file,saveDir)){ //保存成功,插入数据库,返回页面信息
PrintWriter pw=ServletActionContext.getResponse().getWriter();
pw.write(saveDir);
pw.flush();
pw.close();
}
return null;
}
return "input";
}
public String getSaveDir() {
return saveDir;
}
public void setSaveDir(String saveDir) {
this.saveDir = saveDir;
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public FileUpLoadService getFservices() {
return fservices;
}
public void setFservices(FileUpLoadService fservices) {
this.fservices = fservices;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public UserInfo getUser() {
return user;
}
public void setUser(UserInfo user) {
this.user = user;
}
}
service:
public class FileUpLoadService{
public boolean saveFile(File file, String dir){
InputStream in=null;
OutputStream out=null;
try{ //创建流
//创建保存文件
File uploadFile = new File(dir);
//以上传文件创建输入流读入文件
in = new FileInputStream(file);
//输出流copy文件到储存地址
out = new FileOutputStream(uploadFile);
//输出
byte[] buffer = new byte[1024 * 1024];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
//关闭流
in.close();
out.close(); }
catch (IOException e){
return false;
}
return true;
}
}
XML:
<struts>
<!-- 系统常量定义,定义上传文件字符集编码 -->
<constant name="struts.i18n.encoding" value="utf-8"></constant>
<!-- 系统常量定义,定义上传文件临时存放路径 如D://-->
<constant name="struts.multipart.saveDir" value="./"></constant>
<!-- 上传大小,类中也可验证小于此值的文件 -->
<constant name="struts.multipart.maxSize" value="104857600" />
<package name="actionImp.FileUpLoadImp" namespace="" extends="struts-default">
<action name="uploadAction" class="action_upLoad">
<!-- 文件上传大小超限制跳转在此配置-->
<result name="input">/test.jsp</result>
</action>
</package>
</struts>
jsp:
<form action="uploadAction!upLoadFileVedio.do" method="post" enctype="multipart/form-data">
<input type="text" name="title"/>
<input type="text" name="user.username"/>
<input type="text" name="user.phone"/>
请选选择:<input type="File" name="file"/><br>
<input type="submit" value="提交"/>
</form>
分享到:
相关推荐
本资源提供的"上传文件代码源码"是实现这一功能的具体实现,适用于开发者学习和应用。下面将详细解释相关知识点。 1. **前端文件选择与预览** 在网页上,文件上传通常通过HTML5的`<input type="file">`标签实现。...
(3)单击“上传客服端”窗口中的“测试”按钮,如果弹出“连接成功”界面,那就说明你可以上传文件了。 (4)单击“上传客服端”窗口中的“浏览”按钮,选择你要上传的文件。 (5)单击“上传客服端”窗口中的...
本文实例讲述了PHP实现通过CURL上传文件功能。分享给大家供大家参考,具体如下: PHP使用CURL上传文件只需发送一个POST请求就可以了,在请求中设置某个字段为需要上传的文件全路径,并且以”@”开头,然后使用CURL把...
### C# WebClient 上传文件知识点解析 #### 一、引言 在开发过程中,经常会遇到需要将客户端的文件上传到服务器的需求。C#语言提供了多种方法来实现这一功能,其中`WebClient`类就是一种非常简便的方式。本文将详细...
nginx上传文件大小报错500的解决办法 采用nginx作反向代理,出现了一个诡异的问题,小文件可以提交,大文件会报500内部错误。这个是什么原因导致的呢? 查wiki可知,上传文件大小相关的有三个配置 client_body_...
- 设置请求方法为POST,并设置Content-Type头为"multipart/form-data",这是HTTP上传文件的标准格式。 - 使用FileStream读取选定的文件内容,然后写入到HttpWebRequest的GetRequestStream中。 4. 发送请求并处理...
本想做个批量文件上传的功能(设想是客户选择一个目录后,程序能判断需要上传的文件上传到服务器指定目录下),结果没有做出来,在网上找了许多版本的批量上传程序,但实验效果不好,有的还需要下载分,上传文件也不能...
### WinForm上传文件到服务器 #### 知识点概述 在.NET Framework中,Windows Forms(简称WinForms)是一种用于创建Windows桌面应用程序的技术。本篇内容介绍如何使用WinForm实现文件的上传功能,即将本地文件传输...
对于文件上传,我们可能需要配置`<httpRuntime>`节,调整如`maxRequestLength`(限制上传文件的大小)和`executionTimeout`(请求超时时间)等参数,以确保大文件或长时间上传的稳定性。 在`jqueryForm.aspx.cs`...
在Windows Forms(Winform)应用开发中,上传文件到共享文件夹是一项常见的需求,尤其在企业内部通信或者数据传输场景中。本项目是基于VS2010环境,结合了多位专家的经验,实现了一个功能,使得用户能够方便地将本地...
ExtJS 验证上传文件类型 ExtJS 中实现文件上传功能是非常方便的,但对于新手来说,控制文件上传类型是一个难题。例如,我们只想让用户上传特定的文件类型,例如txt文件,那么如何实现当用户上传非txt文件时,给出...
- 文件大小限制:为了避免过大文件导致服务器资源耗尽,应设置上传文件大小的最大限制。 - 文件类型检查:确保上传的文件类型符合预期,防止恶意文件上传。 - 文件重命名:上传后的文件应进行重命名,防止路径...
C#.Net上传文件大小限制设置 在C#.Net中,我们通常遇到上传文件大小限制的问题,即默认情况下,上传文件大小不能超过4M,否则将无法显示页面。这是因为IIS6.0中asp请求的最大字节数默认为200K。为了解决这个问题,...
在IT行业中,批量上传文件是一项常见的任务,尤其是在大数据传输或者文件管理系统中。为了提供良好的用户体验,通常会结合进度条功能,让用户能够实时了解文件上传的状态。在这个场景下,"批量上传文件带进度条"主要...
在SQL Server中上传文件,除了FILESTREAM,还可以使用VARBINARY(MAX)类型存储文件内容,但这种方式不直接利用文件系统,可能会对性能产生影响。总的来说,FILESTREAM是SQL Server提供的一种高效、灵活的文件存储解决...
Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式...
C# Winform 上传文件多种方案 C# Winform 上传文件是指在 Windows 窗体应用程序中上传文件到服务器的操作。这里总结了多种实现上传文件的方案。 方案一:使用 WebClient 上传文件 WebClient 是 .NET Framework 中...
- **大小限制**:设置上传文件的大小限制,避免服务器资源被大量大文件消耗。 - **安全性检查**:对上传的文件名进行安全处理,防止路径遍历攻击等安全问题。 - **错误处理**:提供详细的错误信息,帮助用户理解为...
在Java编程环境中,当需要与Web服务器交互,例如上传文件时,`HttpURLConnection`是一个常见的选择,因为它提供了灵活且高效的方式。本篇文章将详细讲解如何使用`HttpURLConnection`实现文件上传,同时涉及到服务器...
在EXTJS中,实现批量上传文件是一项常见的需求,尤其在处理大量数据或媒体文件时。EXTJS的文件上传组件提供了方便的方式来处理这些任务,允许用户一次性选择多个文件进行上传,极大地提高了工作效率。 批量上传文件...