`

上传文件

 
阅读更多
上传文件:
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的`&lt;input type="file"&gt;`标签实现。...

    java图形化实现文件上传_javagui上传文件,gui编写上传下载文件功能-Java文档类资源

    (3)单击“上传客服端”窗口中的“测试”按钮,如果弹出“连接成功”界面,那就说明你可以上传文件了。 (4)单击“上传客服端”窗口中的“浏览”按钮,选择你要上传的文件。 (5)单击“上传客服端”窗口中的...

    PHP实现通过CURL上传文件功能示例

    本文实例讲述了PHP实现通过CURL上传文件功能。分享给大家供大家参考,具体如下: PHP使用CURL上传文件只需发送一个POST请求就可以了,在请求中设置某个字段为需要上传的文件全路径,并且以”@”开头,然后使用CURL把...

    C# WebClient 上传文件

    ### C# WebClient 上传文件知识点解析 #### 一、引言 在开发过程中,经常会遇到需要将客户端的文件上传到服务器的需求。C#语言提供了多种方法来实现这一功能,其中`WebClient`类就是一种非常简便的方式。本文将详细...

    nginx上传文件大小报错500的解决办法

    nginx上传文件大小报错500的解决办法 采用nginx作反向代理,出现了一个诡异的问题,小文件可以提交,大文件会报500内部错误。这个是什么原因导致的呢?  查wiki可知,上传文件大小相关的有三个配置 client_body_...

    C#通过winform和http上传文件

    - 设置请求方法为POST,并设置Content-Type头为"multipart/form-data",这是HTTP上传文件的标准格式。 - 使用FileStream读取选定的文件内容,然后写入到HttpWebRequest的GetRequestStream中。 4. 发送请求并处理...

    jsp自行增加上传文件的批量文件上传

    本想做个批量文件上传的功能(设想是客户选择一个目录后,程序能判断需要上传的文件上传到服务器指定目录下),结果没有做出来,在网上找了许多版本的批量上传程序,但实验效果不好,有的还需要下载分,上传文件也不能...

    asp.net 批量上传文件

    对于文件上传,我们可能需要配置`&lt;httpRuntime&gt;`节,调整如`maxRequestLength`(限制上传文件的大小)和`executionTimeout`(请求超时时间)等参数,以确保大文件或长时间上传的稳定性。 在`jqueryForm.aspx.cs`...

    WinForm上传文件到服务器

    ### WinForm上传文件到服务器 #### 知识点概述 在.NET Framework中,Windows Forms(简称WinForms)是一种用于创建Windows桌面应用程序的技术。本篇内容介绍如何使用WinForm实现文件的上传功能,即将本地文件传输...

    ExtJS验证上传文件类型

    ExtJS 验证上传文件类型 ExtJS 中实现文件上传功能是非常方便的,但对于新手来说,控制文件上传类型是一个难题。例如,我们只想让用户上传特定的文件类型,例如txt文件,那么如何实现当用户上传非txt文件时,给出...

    winform上传文件到共享文件夹

    在Windows Forms(Winform)应用开发中,上传文件到共享文件夹是一项常见的需求,尤其在企业内部通信或者数据传输场景中。本项目是基于VS2010环境,结合了多位专家的经验,实现了一个功能,使得用户能够方便地将本地...

    java 上传文件,实时获取上传进度.

    - 文件大小限制:为了避免过大文件导致服务器资源耗尽,应设置上传文件大小的最大限制。 - 文件类型检查:确保上传的文件类型符合预期,防止恶意文件上传。 - 文件重命名:上传后的文件应进行重命名,防止路径...

    C#.Net上传文件大小限制设置

    C#.Net上传文件大小限制设置 在C#.Net中,我们通常遇到上传文件大小限制的问题,即默认情况下,上传文件大小不能超过4M,否则将无法显示页面。这是因为IIS6.0中asp请求的最大字节数默认为200K。为了解决这个问题,...

    批量上传文件带进度条

    在IT行业中,批量上传文件是一项常见的任务,尤其是在大数据传输或者文件管理系统中。为了提供良好的用户体验,通常会结合进度条功能,让用户能够实时了解文件上传的状态。在这个场景下,"批量上传文件带进度条"主要...

    通过SqlServer向数据库服务器上传文件

    在SQL Server中上传文件,除了FILESTREAM,还可以使用VARBINARY(MAX)类型存储文件内容,但这种方式不直接利用文件系统,可能会对性能产生影响。总的来说,FILESTREAM是SQL Server提供的一种高效、灵活的文件存储解决...

    Java多线程设计模式上传文件

    Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式...

    Delphi WebBroker 网页上传文件的 Demo 源码

    - **大小限制**:设置上传文件的大小限制,避免服务器资源被大量大文件消耗。 - **安全性检查**:对上传的文件名进行安全处理,防止路径遍历攻击等安全问题。 - **错误处理**:提供详细的错误信息,帮助用户理解为...

    批量上传文件 EXTJS文件上传 上传组件

    在EXTJS中,实现批量上传文件是一项常见的需求,尤其在处理大量数据或媒体文件时。EXTJS的文件上传组件提供了方便的方式来处理这些任务,允许用户一次性选择多个文件进行上传,极大地提高了工作效率。 批量上传文件...

    c#判断上传文件的类型和大小

    在C#中,判断上传文件的类型和大小是网络应用开发中的常见需求,尤其是在处理用户上传文件的功能时。为了确保安全性和性能,开发者通常需要验证文件的类型和大小,防止恶意大文件耗尽服务器资源,或者非法文件类型...

Global site tag (gtag.js) - Google Analytics