转自: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,将它改为需要的大小就可以了。
相关推荐
信息系统中upload文件上传移动转换
使用base64进行文件上传的具体流程是:前台使用js将文件转换为base64格式,后台通过高级编程语言,将base64格式的文件,转换为原文件。下面就来演示一下,C#语言配合js,如何实现图片的base64格式上传与解析保存。...
带进度条的各种文件上传,以及转换成SWF格式的文件
无刷新上传多个文件无刷新上传多个文件无刷新上传多个文件无刷新上传多个文件
手把手教你使用canvas 手写签名,并上传图片,cancas 中自动是生成文字, 签名中需要用的到技术基本包含, 尽量不让你懂脑子,拿过来就用,(上传图片接口需要修改)上传图片转base64 base64转文件, 上传图片使用...
主要介绍了Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
通过java解析上传文件,判断文件类型(excel或者csv),将解析后的数据映射到javabean,从而可以进一步操作,入库或者增添数据
//base64路径转文件类型 baseImgURL2File(url, type, name, id, callback) //图片压缩 imageCompress(file, callback) // 合并所有图片 mergeAllImage(files, mergeName, callback) //计算所有图片最大宽与...
控件内的每一个用户选择的文件都是一个file对象,而FileList对象则是file对象的列表。代表用户选择的所有文件。我们先来看一个简单的demo,看下file文件对象有哪些属性。如下代码: <!DOCTYPE html> <html>...
基于ftp服务器,csv文件转换格式的文件上传下载实例
Struts2+hibernate+spring实现多文件的上传与下载功能,主要包括:上传、下载、删除 1.能够对多个文件进行上传(可以选择上传文件个数,也即...文件上传是运用了Ajax技术对上传文件校验,判断数据库中是否存在该文件
vueCli3.0文件上传后,后端返回流,前端转换成pdf预览的3种方式
Hex文件转Bin文件的QT程序,简单易用,上传hex文件和上传bin文件路径可见,方便查找 Hex文件不超过256K
使用httpPost java实现文件上传转发。 使用MultipartFile[] files,@RequestParam Map,Object> map 接收
xls,doc,ppt等各式文件上传并转换成swf在浏览器中在线浏览,保证能用
5、支持大文件上传,一次可以上传多个文件,上传时有详细状态显示(单个文件进度,整体进度,传输速率,剩余时间等)。 6、支持各种代理(HTTP, Socket4, Socket5等) 7、客户端可以绑定表单变量,服务端并可以接收...
将文件上传到 /admin/product.aspx 所有文件上传结束后弹出窗口"上传完毕" 就这样填参数 FlashVars="url=/admin/product.aspx&handler=alert('上传完毕')" (然后在product.aspx获取post第一个文件即可) ========...
上传文件php代码,选择本机上的文件,php上传文件是转到缓存中,本代码实现了真正的上传,不是缓存文件
网上有些这样的例子,但是下了几个都没有跑起来,哎,希望那些发文章的人要发就发全的,别发个半生不熟的。... 现在自己整理了一个Struts2+ExtJS2实现文异步文件上传,没法上传图片无法看到效果,直接上源码吧。
该工具类可以将csv文件转xls、xlsx文件。最主要的是可将csv文件流转excel文件流,例如你之前的程序处理excel上传,现在需求改为csv上传,可大大减少重构