![C#实验指导书[实验5].doc_第1页](http://file.renrendoc.com/FileRoot1/2019-5/4/aa5822e2-45e1-448c-9717-f37d49a6c658/aa5822e2-45e1-448c-9717-f37d49a6c6581.gif)
![C#实验指导书[实验5].doc_第2页](http://file.renrendoc.com/FileRoot1/2019-5/4/aa5822e2-45e1-448c-9717-f37d49a6c658/aa5822e2-45e1-448c-9717-f37d49a6c6582.gif)
![C#实验指导书[实验5].doc_第3页](http://file.renrendoc.com/FileRoot1/2019-5/4/aa5822e2-45e1-448c-9717-f37d49a6c658/aa5822e2-45e1-448c-9717-f37d49a6c6583.gif)
![C#实验指导书[实验5].doc_第4页](http://file.renrendoc.com/FileRoot1/2019-5/4/aa5822e2-45e1-448c-9717-f37d49a6c658/aa5822e2-45e1-448c-9717-f37d49a6c6584.gif)
![C#实验指导书[实验5].doc_第5页](http://file.renrendoc.com/FileRoot1/2019-5/4/aa5822e2-45e1-448c-9717-f37d49a6c658/aa5822e2-45e1-448c-9717-f37d49a6c6585.gif)
已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.Net Web应用程序设计 实验指导书(草稿) 李盘靖山东理工大学计算机学院实验五 服务器控件FileUpload的综合应用实验目的1.了解各种标准服务器控件;2.熟悉基于标准服务器控件的Web应用程序的开发过程;3. 综合应用各种标准服务器控件进行Web应用程序的开发。实验内容实验项目:文件的上传文件的上传下载在B/S架构中应该是常见的需求,比如考试报名时需要上传照片、办公自动化系统中需要上传文档。以下内容为在FileUpload控件基础上,如何实现文件的上传及其大小、类型等相关信息的获取,结合JavaScript脚本等如何实现图片的预览以及如何通过Web.config对上传文件的大小作出限定。 实验步骤1. 建立ASP.NET Web应用程序项目FileUpload,在生成的默认页面中加入如下三个控件,用来上传文件并显示其基本信息: 2. 不添加任何事件,编译运行,可见asp:FileUpload对应的HTML元素为:同时注意到客户端对应生成的Form表单多了enctype的属性:3. 为bnUpload添加单击事件:protected void bnUpload_Click(object sender, EventArgs e) string strFileName; string strFilePath; strFileName = Path.GetFileName( this.fileUp.PostedFile.FileName); strFilePath = Server.MapPath(.) + + strFileName; this.fileUp.PostedFile.SaveAs(strFilePath); this.lbFileInfo.Text = 文件上传成功,基本信息如下: + 保存路径 + strFilePath + 文件名称 + strFileName + 文件大小 + this.fileUp.PostedFile.ContentLength + 文件类型 + this.fileUp.PostedFile.ContentType + 本地路径 + this.fileUp.PostedFile.FileName;4. 编译运行后,选择一小于4M的任意类型文件,单击上传后看能否实现正常的上传功能,并观察上传文件在服务器端的位置。小结:由上可以注意到asp:FileUpload控件主要提供选择本地文件的功能,同时将选择的文件封装到PostedFile对象中,可通过对应的属性获取待上传文件的属性,并提供SaveAs方法用于在指定位置保存。5. 在没有选择文件时,就单击上传,看是否会出错。会小结:FileUpload显示一个文本框控件和一个浏览按钮,使用户可以选择客户端上的文件并将它上传到服务器。可通过在控件的文本框中输入本地路径指定要上载的文件,也可以通过单击“浏览”按钮,然后在“选择文件”对话框中选择文件。需要注意的是:用户选择要上载的文件后,FileUpload控件并不会自动将该文件上传。需要显式提供通过控件等机制让用户提交选定的文件,如加入一个“上传”按钮,让用户单击后上传文件。通常在回发(PostBack)到服务器的事件处理方法中调用SaveAs方法,用以在服务器端保存上传的文件。而在在调用SaveAs之前,一般使用HasFile属性验证是否包含文件。用PostedFile=null来验证是不可取的,因为默认情况下该属性包含0字节,即使FileUpload控件为空,PostedFile仍将返回一个非空值。6. 在bnUpload的单击事件代码中添加:protected void bnUpload_Click(object sender, EventArgs e) if (!this.fileUp.HasFile) return; string strFileName;7. 重新编译运行后,在没有选择文件时,单击上传,看是否会出错。8. 同上例,尝试上传一个大文件,如几百M的电影,看是否会出错。小结:一般地认为,默认只能上传4M的文件(其目的在于防止拒绝服务攻击,如因用户向服务器发送大型文件而导致的拒绝服务攻击),否则将显示一个“无法显示页面”的页面。可以通过设置httpRuntime元素的maxRequestLength属性来允许上载更大的文件。若要增加整个应用程序所允许的最大文件大小,请设置Web.config文件中的 maxRequestLength 属性。若要增加指定页所允许的最大文件大小,请设置Web.config中location元素内的maxRequestLength属性。9. 在Web.config文件将maxRequestLength分别设置为1和1024,分别上传一个100K左右的文件,看其结果有何不同。 10. 在Web.config文件添加location元素后,将基path指向当前页面,并将maxRequestLength设置为1024000,再上传一个几百M的电影,观察其结果(可事先启动任务管理器,观察这一过程对CPU和内存的占用情况)。死机了 11. 思考:Web.config在网站开发中的基本作用是什么,location的优先级别,为什么默认上传文件的大小上限被设置为4M,将其上限改大后有何风险。12. 使用FileUpload控件上传文件一般有如下几个步骤:1)利用HasFile属性判断是否上传了文件。2)在服务器上指定一个物理路径,并检查这个物理路径是否存在,如果不存在则先创建。3)根据指定的服务器路径,利用SaveAs()保存上传的文件。同时可以验证上传的文件格式、大小等是否符合要求。4)将相对路径或者URL地址保存至数据库或其它地方,以便以后下载。13. 功能扩展:对于给定服务器物理路径,怎么判断其是否存在,在不存在的前提下如何创建。提示:利用System.IO.Directory的方法。protected void bnUpload_Click(object sender, EventArgs e) if (!this.fileUp.HasFile) return; string strFileName; string strFilePath; strFileName = Path.GetFileName( this.fileUp.PostedFile.FileName); strFilePath = Server.MapPath(/upload/); if (!System.IO.Directory.Exists(strFilePath) System.IO.Directory.CreateDirectory(strFilePath); this.fileUp.PostedFile.SaveAs(strFilePath); this.lbFileInfo.Text = 文件上传成功,基本信息如下: + 保存路径 + strFilePath + 文件名称 + strFileName + 文件大小 + this.fileUp.PostedFile.ContentLength + 文件类型 + this.fileUp.PostedFile.ContentType + 本地路径 + this.fileUp.PostedFile.FileName; 调试后有错误14. 功能扩展:如何在文件上传成功后,动态添加其超链,从而能查看或下载该文件。提示:利用asp:Literal控件,this.litUp.Text = string.Format(0, strFileName);15. 思考:怎么在上传图片之前,在Web浏览器中预览图片效果?16. 方法1:通过javascript动态添加IMG,并将其SRC修改为本地上传文件。添加如下脚本: /如果用户选择了图片,则显示图片的预览效果 function preview() var fileX = document.getElementById(fileUp); if(!fileX | !fileX.value) /如果没有选择上传文件 return; var suffix = /.jpg$|.jpeg$/i; if(suffix.test(fileX.value) /限定上传文件的后缀是.jpg或.jpeg var imageX = document.getElementById(imgviewer); if(imageX) imageX.src = file:/ + fileX.value; imageX.style.display=block; else var imgviewer = document.createElement(img); imgviewer.setAttribute(src,file:/+fileX.value); imgviewer.setAttribute(width,120); imgviewer.setAttribute(height,90); imgviewer.setAttribute(id,imgviewer); document.getElementById(form1).appendChild(imgviewer); setTimeout(hidden(),5000); /5秒之后隐藏图片 else alert(请选择JPG格式的图像文件。); /隐藏照片 function hidden() var imageX = document.getElementById(imgviewer); if(imageX) document.getElementById(imgviewer).style.display=none; 对应FileUpload中,增加onchange和onmouseover事件,并将其与preview脚本关联:编译运行后,观察其效果。理论上的效果应该是:选择了文件或用户鼠标移动上传控件是,判断其是否为jpg格式文件,如果是显示其预览效果5秒钟,然后让其消失。思考:如果不出现上述效果,如何解决?并讨论出现这一现象的原因。17. 方法2:AlphaImageLoader滤镜。用途:在对象的容器边界内,在对象背景与内容之间显示图片,并能对此图片进行剪切或改变尺寸。如果载入的是PNG(Portable Network Graphics)格式文件,则还能设置0%-100%的透明度。基本语法:filter : progid: DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL ) 其中:enabled:可选项,布尔量,用于设置或检索滤镜是否激活。 True为默认值。sizingMethod:可选项,字符串,用于设置或检索滤镜作用于对象的图片在对象容器边界内的显示方式。其中:crop表示剪切图片以适应对象尺寸,image为默认值,表示增大或减小对象的尺寸边界以适应图片的尺寸,scale表示缩放图片以适应对象的尺寸边界。src:必选项,字符串,使用绝对或相对URL地址指定图片来源,无此参数,滤镜将失效。 据此,应用AlphaImageLoader滤镜一般步骤:1)为预览区域(比如要在某个 div 中预览)添加样式:filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);2)为 AlphaImageLoader 设置 src 属性。在部分添加:#newPreviewfilter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);function PreviewImg(imgFile) /原来的预览代码,不支持 IE7。 var oldPreview = document.getElementById(oldPreview); oldPreview.innerHTML = ; /新的预览代码,支持 IE6、IE7。 var newPrevie
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 政策执行与效果评估
- 教育机器人营销攻略中的渠道选择与运营
- 数据驱动的教学评价体系创新
- 中国卷材机行业发展现状及发展趋势与投资风险分析2025-2028版
- 2025年中国金银玻璃珠行业投资前景及策略咨询研究报告
- 2025年中国腰果盘行业投资前景及策略咨询研究报告
- 2025年中国玻璃碗餐具行业投资前景及策略咨询研究报告
- 心理疾病应对策略
- 2022年福建三明泰宁县招考聘用教师公告强化练习卷(带答案)
- 小学一年级数学20以内三个数加减混合运算质量作业练习题
- 注册安全工程师继续教育题库
- 工程项目监理人工智能与机器人技术应用
- 边防派出所知识讲座
- 基于GIS的四川省旅游资源调查、分类与评价
- 刑事案件模拟法庭剧本完整版五篇
- 录播教室设备投标方案(技术标)
- 人行道栏杆计算
- 盐碱地治理施工方案
- 常见藻类图谱(史上最全版本)
- 病理英语词汇表
- 设计一个数控X-Y工作台及其控制系统详解
评论
0/150
提交评论