事先要将uploadify插件引入到解决方案中,可去uploadify官网下载;此例子是在MVC中进行的实现;脚本代码段:
<script src="~/Scripts/jquery-1.11.1.min.js"></script><script src="~/Scripts/Common/uploadify/[email protected](new Random().Next())[email protected](new Random().Next())"></script> <script> $(‘#uploadify‘).uploadify({ uploader: ‘/SocialSecurity/Upload‘, // 服务器端处理地址 swf: ‘../Scripts/Common/uploadify/uploadify.swf‘, // 上传使用的 Flash width: 60, // 按钮的宽度 height: 23, // 按钮的高度 buttonText: "上传", // 按钮上的文字 buttonCursor: ‘hand‘, // 按钮的鼠标图标 fileObjName: ‘Filedata‘, // 上传参数名称 fileSizeLimit: ‘51200K‘,//1M:1*1024*1024 // 两个配套使用 fileTypeExts: "*.gif;*.jpg;*.jpeg;*.png;*.GIF;*.JPG;*.PNG;", // 扩展名 fileTypeDesc: "请选择 gif|jpg|jpeg|png 文件", // 文件说明 auto: true, // 选择之后,自动开始上传 //multi: true, // 是否支持同时上传多个文件 //queueSizeLimit: 5, // 允许多文件上传的时候,同时上传文件的个数 removeCompleted: false, //文件上传完成后,是否自动移除队列中的文件 uploadLimit: 1, //最大上传文件数量,如果达到或超出此限制将会触发onUploadError事件。 onInit: function () { $("#uploadify-queue").hide();//隐藏上传进度和上传文件的大小 }, onSelect: function (file) { //选择文件后向队列中添加每个上传任务时都会触发。 auto_boxHeight(‘ifm4‘, 30); }, onUploadSuccess: function (file, data, response) { $("#hf_uploadURL").val(data); alert("上传成功"); } }); </script>
html标签:
<div class="fl lh45form bdLeft" style="width:370px;padding-left:50px;"> <h3 class="ml5">资料上传</h3> <table class="tb_form"> <tr> <td class="tx_left" width="27%">生效时间</td> <td class="tx_left"><input type="text" class="timeInput" name="effectiveTime" id="txtEffectiveTime" onclick="WdatePicker({ minDate: ‘%y-%M-01‘, dateFmt: ‘yyyy-M‘ });" value=""></td> </tr> <tr> <td class="tx_left">上传证明资料</td> <td class="tx_left btnC"> <span id="uploadify"></span> <input type="hidden" id="hf_uploadURL" name="uploadURL" /> </td> </tr> <tr> <td colspan="2" class="tx_left">备注: XXXX</td> </tr> </table> </div>
后台Controller.cs代码段:
public ActionResult Upload(HttpPostedFileBase Filedata) { // 如果没有上传文件 if (Filedata == null || string.IsNullOrEmpty(Filedata.FileName) || Filedata.ContentLength == 0) { return this.HttpNotFound(); } //文件是否存在 if (!Directory.Exists(Server.MapPath("~/Upload"))) { Directory.CreateDirectory(Server.MapPath("~/Upload")); } //文件下的文件是否存在 string fileName = "~/Upload/SocialSecurityFile"; if (!Directory.Exists(Server.MapPath(fileName))) { Directory.CreateDirectory(Server.MapPath(fileName)); } // 保存到 ~/photos 文件夹中,名称不变 string filename = System.IO.Path.GetFileName(Filedata.FileName); string allFileName = Guid.NewGuid().ToString("N");//得到一个32位的数字,国际唯一字符 string virtualPath = string.Format("~/Upload/SocialSecurityFile/{0}_{1}", allFileName, filename); // 文件系统不能使用虚拟路径 string path = this.Server.MapPath(virtualPath); Filedata.SaveAs(path); var url = FuncFileUpload.Instance.Upload(path);//此代码是将代码服务器中的文件资源上传至文件资源服务器中,也可直接返回path值(代码服务器上的文件路径值) System.IO.File.Delete(path); return Content(url); }
到此,运行即可看到上传的效果;
时间: 2024-09-29 11:28:46