文档章节

图片上传:FileUpload未引用实例、大容量上传

木木情深
 木木情深
发布于 2013/07/04 14:26
字数 806
阅读 58
收藏 0

    今日通过FileUpload上传一5,199 KB 的图片时,前台代码:

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>
            <asp:FileUpload ID="WebFile" runat="server" Height="23px" />
            <asp:Button ID="pictureUp" runat="server" onclick="pictureUp_Click" Text="上传文件"                  OnClientClick = "return sureExecutecode1()"  />
    </ContentTemplate>
                   <Triggers>
                        <asp:PostBackTrigger ControlID="pictureUp" />
                        <asp:PostBackTrigger ControlID="pictureClear" />
                    </Triggers>
</asp:UpdatePanel>   


后台代码如下:
protected void pictureUp_Click(object sender, EventArgs e)
 {

        if (WebFile.PostedFile.FileName == "")
        {
            string script1 = "if(alert('请选择要上传的文件!')) ";
            ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "alertForm", script1, true);
            return;
        }
        try
        {
            string strName = WebFile.PostedFile.FileName;//使用fileupload控件获取上传文件的文件名
            if (strName != "")//如果文件名存在
            {
                int i = strName.LastIndexOf(".");//获取。的索引顺序号,在这里。代表图片名字与后缀的间隔
                string kzm = strName.Substring(i);//获取文件扩展名
                string newName = "";
                Label21.Text = RadioButtonList3.SelectedItem.Text.ToString() + lailiaonum.Text.ToString();
                if(Label21.Text != "")
                {
                     newName = Label21.Text.ToString();
                }
                else if (Label2.Text != "")
                {
                     newName = Label2.Text.Trim();
                }
                string xiangdui = @"~/goodsPhtot/";//设置文件相对网站根目录的保存路径 ,~号表示当前目录,在此表示根目录下的images文件夹
                string juedui = Server.MapPath("~//goodsPhtot//");//设置文件保存的本地目录绝对路径,对于路径中的字符“\”在字符串中必须以“\\”表示,因为“\”为特殊字符。或者可以使用上一行的给路径前面加上@
                string newFileName = juedui + newName + kzm;
                WebFile.PostedFile.SaveAs(newFileName);//将图片存储到服务器上

                Image1.Visible = true;//最开始我们把图片的属性设置为不可见,是为了美观,在这要显示,所以就设置为可见
                LAB.Text = xiangdui + newName + kzm;
                Image1.ImageUrl = xiangdui + newName + kzm;//当图片属性为可见时,就要设置图片的链接地址。在这里,一定要写图片的相对路径,因为要显示的是已经传在服务器上的图片

                    string script1 = "if(alert('货物照片添加已成功!')) ";
                    ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "alertForm", script1, true);

            }  
        }
        catch
        {
            string script1 = "if(alert('上传文件失败,请与管理员联系!')) ";
            ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "alertForm", script1, true);
        }
    }


突然出现了这样的界面


刚开始还以为代码问题,但是觉得不可能,因为前一天还是成功的。迷迷糊糊的把,前台的一句代码,如下所示,给去掉了
<Triggers>
        <asp:PostBackTrigger ControlID="pictureUp" />
</Triggers>
就出现了另一个问题,WebFile没有引用到实例。这里注意,触发器是必须加的。

是换了一张图片却成功了,推断不是代码问题,突然想起,ASP.NET 支持的HTTP方式上传的默认最大字节数为 4096 KB (4 MB),用于防止因用户将大量文件传递到服务器而导致的拒绝服务攻击。故而采用如下的方式:
增大字节数,修改web.config文件,代码如下:

<system.web>
    <!--设置 compilation debug="true" 可将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 true。    
    <customErrors mode="Off" />
    <httpRuntime executionTimeout ="9999" maxRequestLength ="2097151"/>

</system.web>


注:executionTimeout: 表示ASP.NET被自动关闭前,允许执行请求的最大秒数。在当文件超出指定的大小时,如果浏览器中产生 DNS 错误或者出现服务不可得到的情况,可以挺过修改以上的配置,增大配置数来解决。maxRequestLength:指示 ASP.NET 支持的HTTP方式上载的最大字节数。


经过修改后,即可上传成功

© 著作权归作者所有

共有 人打赏支持
木木情深
粉丝 37
博文 189
码字总数 26451
作品 0
广州
程序员
commons-fileupload组件上传图片介绍

基于表单的文件上传 如果在表单中使用表单元素 <input type=“file” />,浏览器在解析表单时,会自动生成一个输入框和一个按钮,输入框可供用户填写本地文件的文件名和路径名,按钮可以让浏...

wumingyue
2012/08/29
0
0
javaweb开发之处理表单上传文件和文件下载

一、基于表单的上传文件 1. enctype属性 当表单需要上传文件时,需指定表单 enctype 的值为 multipart/form-data。 在 form 元素的语法中,enctype 属性指定将数据发送到服务器时浏览器使用的...

小米米儿小
2013/12/06
0
0
CKFinder根据用户设置权限,不同用户有自己的私有的、独立的文件夹

CKFinder 默认情况下多个用户共用同一个图片目录。所有上传的图片和Flash全部保存在同一个文件夹(默认为 userfiles)内。 现在想实现: 第1个需求:不同用户有自己的私有的、独立的文件夹;...

随智阔
2013/07/09
0
0
Commons FileUpload

1 概述 Commons FileUpdate包很容易为你的Servlet和web应用程序添加健壮的、高性能的文件上传功能。 FileUpload解析遵循RFC 1876(在HTML中基于表单的文件上传)HTTP请求。即,如果一个HTTP请...

Leech
2015/08/02
0
0
文件的上传和下载--SpringMVC

文件的上传和下载是项目开发中最常用的功能,例如图片的上传和下载、邮件附件的上传和下载等。 接下来,将对Spring MVC环境中文件的上传和下载进行详细的讲解。 一.文件上传 多数文件上传都...

一飞要上天
08/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jQuery学习笔记180923

jQuery 操作 CSS jQuery 拥有若干进行 CSS 操作的方法。我们将学习下面这些: addClass() - 向被选元素添加一个或多个类 removeClass() - 从被选元素删除一个或多个类 toggleClass() - 对被选...

颖伙虫
25分钟前
0
0
[python] colorama 模块 - 改变控制台输出文本的颜色

除了使用 PyQt 这样的图形化开发框架外,基本上 python 程序都是跑在控制台中的。很多时候,单纯使用黑白的文字不能很好地突出我们要显示的信息。有时候我们需要将错误的提示使用红色标注,而...

cometeme
30分钟前
0
0
Makefile 学习 2 - 基于若干 Blog 的汇总

基于若干 Blog 汇总的 makefile 教程 陈皓 https://blog.csdn.net/haoel/article/details/2886 Makefile 进阶 1. Makefile 中的内容 显式规则。显式规则说明了,如何生成一个或多的的目标文件...

公孙衍
46分钟前
0
0
NIO与BIO的区别、NIO的运行原理和并发使用场景

NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的...

Java干货分享
今天
1
0
72.告警系统邮件引擎 运行告警系统

20.23/20.24/20.25 告警系统邮件引擎 20.26 运行告警系统 20.23/20.24/20.25 告警系统邮件引擎 邮件首先要有一个mail.py,以下。 因为我们之前zabbix的时候做过,就可以直接拷贝过来 mail.s...

王鑫linux
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部