转自:http://www.cnblogs.com/zhongxinWang/archive/2012/12/12/2815237.html
1.AjaxFileUpload
地址:http://www.phpletter.com/Demo/AjaxFileUpload-Demo/
<script type="text/javascript"> function ajaxFileUpload() { $.ajaxFileUpload( { url: '/Home/AjaxSave', secureuri: false, fileElementId: 'fileToUpload', dataType: 'json', beforeSend: function () { }, complete: function () { }, success: function (data, status) { if (typeof (data.error) != 'undefined') { if (data.error != '') { alert(data.error); } else { alert(data.msg); } } }, error: function (data, status, e) { alert(e); } } ); return false; } </script>
HTML
<input id="fileToUpload" type="file" size="45" name="fileToUpload" /> <input type="button" id="buttonUpload" onclick="return ajaxFileUpload();" value="Upload" />
后台
public void AjaxSave() { var file = Request.Files[0]; string path = Server.MapPath("~") + "/Upfiles/" + "/"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } file.SaveAs(path + Path.GetFileName(file.FileName)); }
2.Ajax文件上传
1.Index视图中添加一个上传控件,请求文件列表的js。
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.8.3.min.js")"></script> <script type="text/javascript"> $(document).ready(function () { //文件列表 $.post("/Borrow/FileList", null, function (data) { $("#fileList").html(data); }); //提交图片之后的ajax请求更新 $("#fileList").click(function () { $.post("/Home/FileList", null, function (data) { $("#fileList").html(data); $("#fileToUpload").val(null); }); }); }); </script> <div> <div id="fileList"> 文件列表 </div> <br /> @using (Html.BeginForm("Upload", "Home", FormMethod.Post, htmlAttributes: new { enctype = "multipart/form-data", target = "msgframe" })) { <input id="fileToUpload" type="file" size="45" name="fileToUpload" /> <input type="submit" style="cursor: pointer;" value="上传" /> } <iframe id="msgframe" name="msgframe" style="display: none;"></iframe> </div>
2.控制器
public class HomeController : Controller { //Index public ViewResult Index() { return View(); } //上传 public ActionResult Upload() { //获取文件 var file = Request.Files["fileToUpload"]; string msg = ""; //保存 if (file != null && file.ContentLength > 0) { //文件目录 string path = Server.MapPath("~") + "Upfiles\\"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } //文件类型验证 string[] allowExtension = { "application/x-bmp" ,"image/jpeg", "application/x-jpg", "image/gif", "application/x-png", "application/msword","applications-powerpoint", "application/x-ppt", "application/-excel", "application/x-xls","application/vnd.ms-excel" }; if (!allowExtension.Contains(file.ContentType)) { msg = "上传文件类型不正确"; } else { //上传文件大小验证 long len = GetDirectoryLength(path) + file.ContentLength; if (len <= 10 * 1024 * 1024) { string directoryName = path + "\\" + file.FileName; file.SaveAs(directoryName);//文件 } else { msg = "每个借款项目的文件不能超过10M"; } } } else { msg = "添加文件失败"; } if (!string.IsNullOrEmpty(msg)) { Response.Write("<script>alert('" + msg + "');</script>"); } Response.Write("<script>parent.document.getElementById('fileList').click();</script>"); return View(); } //判断目录下文件的总大小 private long GetDirectoryLength(string dirPath) { long len = 0; DirectoryInfo di = new DirectoryInfo(dirPath); foreach (FileInfo fi in di.GetFiles()) { len += fi.Length; } foreach (DirectoryInfo dis in di.GetDirectories()) { len += GetDirectoryLength(dis.FullName); } return len; } //文件列表 public ActionResult FileList() { return PartialView(); } }
3.Upload视图
@{ Layout = null; } <!DOCTYPE html> <html> <head> <title>Upload</title> </head> <body> <div> </div> </body> </html>
补充:
<form name="formToUpload" method="post" action="..\loadjsonM\productPlan_JhJson.ashx" enctype="multipart/form-data" target="msgframe"> <input id="fileToUpload" type="file" size="45" name="fileToUpload" /> <input type="submit" style="cursor: pointer;" value="上传" /> <input name="uptype" type="hidden" value="55" /> </form> <iframe id="msgframe" name="msgframe" style="display: none;"></iframe>
string strReturn = @" <!DOCTYPE html> <html> <head> <title></title> <script type='text/javascript'> @msg </script> </head> <body> </body> </html> "; context.Response.ContentType = "text/html"; context.Response.Write(strReturn.Replace("@msg", msg));
3.选中文件即上传
function upload() { $("#fileToUpload").click(); setTimeout("checkFile()", 1000); } var timeout; function checkFile() { var filePath = $("#fileToUpload").val(); if (filePath == "" || filePath == null) { timeout = setTimeout("checkFile()", 1000); } else { clearTimeout(timeout); $("#formUpload").submit(); $("#fileToUpload").val(""); } }
<div style="display:none;"> <form id="formUpload" name="formToUpload" method="post" action="Accessory/Upload" enctype="multipart/form-data" target="msgframe"> <input id="fileToUpload" type="file" size="45" name="fileToUpload" /> </form> <iframe id="msgframe" name="msgframe" style="display: none;"></iframe> </div>
Request.File文件大小限制
错误消息:超过了最大请求长度
错误原因:asp.net默认最大上传文件大小为4M,运行超时时间为90S。
解决方案:
1. 修改web.config文件可以改变这个默认值
<configuration>
<system.web>
<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
</system.web>
<configuration>
2.另一种方法是修改.NET FrameWork:
(1) 修改 C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG 目录下的machine.config 文件。
(2) 查找 "<httpruntime" 在这一行将 maxRequestLength的值改为理想的值,比如想要8M,就输入8192.
这样,你的任何一个 web 工程都可以上传最大8M的文件。
3.顺便说下IIS中限制上传文件大小的修改方法:
(1)首先要到进程中把IIS服务关了,即把inetinfo.exe进程关了。
(2)在系统目录中找到:windows/system32/inesrv/metabase.xml”文件,找个文本编辑器打开,查找AspMaxRequestEntityAllowed="204800"这一项,这就是iis上传文件的默认大小了,默认为204800Byte,也就是200KB,将它改为需要的大小就可以了。
相关推荐
在.NET开发环境中,实现带进度条的文件上传和文件转换为SWF格式是常见的需求,尤其是在构建交互式、用户体验良好的Web应用时。本教程将详细讲解如何实现这两个功能。 首先,我们来探讨带进度条的文件上传。在传统的...
信息系统中upload文件上传移动转换
在ASP.NET Core中处理文件上传是一项常见的任务,特别是在需要用户提交图片、视频、音频或文档等数据的场景下。本文将介绍如何在ASP.NET Core中实现单文件和多文件的上传,并将它们保存到服务端。 首先,我们需要...
### OUT文件转HEX文件方法 #### 工具介绍 在进行.OUT文件转换为.HEX文件的过程中,我们主要依赖的是TI(Texas Instruments)公司提供的一个名为`hex2000`的工具。这个工具能够帮助我们将编译链接后生成的.OUT格式的...
标题中的知识点主要涉及Python连接HDFS进行文件上传下载以及Pandas转换文本文件到CSV的操作。在描述中,提到了Python在Linux环境下与HDFS交互的需求,以及使用Pandas进行数据处理的场景。从标签中我们可以进一步了解...
在IT行业中,多文件上传是一项常见的功能,尤其在文件共享、云存储以及社交媒体等应用场景中。这个源码可能提供了一种实现方式,允许用户同时上传多个文件,并且带有进度条显示,用户可以随时停止或删除正在上传的...
文件上传和下载是Web应用程序中的核心功能之一,无论是用户向服务器提交个人资料、分享文档,还是从服务器获取资源,如软件更新、电子书籍等,都离不开这一操作。在这个过程中,前端与后端的交互以及数据的安全传输...
使用base64进行文件上传的具体流程是:前台使用js将文件转换为base64格式,后台通过高级编程语言,将base64格式的文件,转换为原文件。下面就来演示一下,C#语言配合js,如何实现图片的base64格式上传与解析保存。...
在Vue.js中,实现文件上传功能是常见的需求,尤其是在构建交互丰富的Web应用时。本篇将详细介绍Vue.js中实现多文件上传的相关知识点,以及如何使用`vue-upload-component`这个开源组件来帮助我们实现这一功能。 ...
在实际项目中,文件转Base64操作通常用于上传文件至服务器,存储在数据库中,或者在网络中以文本形式传输。了解并熟练掌握这一技巧对于C#开发者来说是非常重要的。在标签中提到的"C#文件转base64 文件转换"是一个...
标题“文件上传并在线浏览”涉及的技术点主要是文件上传与在线预览,主要涵盖以下几个方面: 1. **文件上传**:文件上传是Web应用中常见的功能,用户可以通过选择本地文件将其上传到服务器。这一过程涉及到HTML表单...
本篇将详细介绍如何使用标题为"Hex文件转Bin文件的QT程序V1.0"的工具来完成这个转换过程。 首先,我们要理解Hex文件的结构。Intel Hex格式是一种常见的十六进制文件格式,其中包含地址、数据和校验和等信息。每个...
在IT行业中,文件上传是一项常见的功能,特别是在web应用中,用户可能需要上传各种类型的文件,如文档、图片或数据文件。"文件上传jar文件"这个标题指出,我们讨论的是一个包含用于实现文件上传功能的Java库的压缩包...
在Android开发中,文件上传,特别是图片上传,是常见的需求之一。这涉及到用户选择本地文件,通常是图片,然后通过网络接口将这些文件发送到服务器。本文将深入探讨如何实现Android平台上的多文件和单文件上传,以及...
9. **前端库和框架支持**: 许多前端库和框架如jQuery、axios、React、Vue等都提供了方便的文件上传插件或组件,简化了开发过程,如React的`react-dropzone`、Vue的`vue-file-upload`等。 10. **用户体验优化**: ...
4. 将生成的文件上传至服务器或本地Web服务器,然后在浏览器中打开HTML文件,即可看到运行的Scratch项目。 将sb3文件转换为exe文件是为了在没有安装Scratch的Windows系统上运行。这通常需要借助一些第三方软件,...
Java 实现上传文件类型检测过程解析是指在进行文件上传时,对上传文件的格式进行控制,以防止黑客将病毒脚本上传。单纯的将文件名的类型进行截取的方式非常容易遭到破解,上传者只需要将病毒改换文件名便可以完成...
首先,我们需要理解Java中的文件上传机制。在Java Servlet规范中,`multipart/form-data`类型的HTTP请求用于处理文件上传。`javax.servlet.http.Part`接口提供了处理上传文件的方法。通常,我们使用Servlet 3.0及...
可以使用FTP客户端(如xftp)将xlsx文件上传到服务器。例如,将其放在 `/home/tubiao/桌面/` 目录下。然后,使用`unoconv`命令将xlsx文件转换为pdf,命令如下: ``` /usr/bin/unoconv -f pdf /home/tubiao/桌面/1...
在IT行业中,文件上传下载是Web应用中常见且重要的功能之一。这个"文件上传下载demo"项目显然聚焦于实现这一功能,并对一个名为jspSmartUpload的组件进行了优化处理,特别是针对SmartUpload类进行升级,解决了文件名...