码迷,mamicode.com
首页 > Web开发 > 详细

MVC 上传文件+预览

时间:2014-12-01 15:43:33      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   io   ar   color   os   sp   

学习记录    复习用

一、调用了Uploadify插件

Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示。(具体参数百度就是。)

二、上传文件的方法

bubuko.com,布布扣
namespace PM.Myjobweb.Controllers
{
    public class FileOperationsController : Controller
    {
        BLL.pc_attachment bll_attachment = new BLL.pc_attachment();
        //
        // GET: /FileOperations/
        /// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="fileData"></param>
        /// <returns></returns>
        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Upload(HttpPostedFileBase fileData)
        {
            if (fileData != null)
            {
                try
                {
                    // 文件上传后的保存路径
                    string filePath = Server.MapPath(Request["folder"] + "\\");
                    if (!Directory.Exists(filePath))
                    {
                        Directory.CreateDirectory(filePath);
                    }
                    string fileName = Path.GetFileName(fileData.FileName);// 原始文件名称
                    string fileExtension = Path.GetExtension(fileName); // 文件扩展名
                    string saveName = Guid.NewGuid().ToString() + fileExtension; // 保存文件名称

                    string url = "/Content/JqueryUpload/upload/" + saveName;

                    fileData.SaveAs(filePath + saveName);
                    if (fileExtension == ".docx" || fileExtension == ".doc" || fileExtension == ".pdf" || fileExtension == ".xlsx")
                        url = "/Content/JqueryUpload/html/" + PM.Common.FilesToHtml.FileToHtml(filePath + saveName, TimeParser.ConvertDateTimeInt(DateTime.Now).ToString(), fileExtension.Substring(1));

                    FilesModel m_files = new FilesModel();
                    m_files.DesName = fileName;
                    m_files.FileExtension = fileExtension;
                    m_files.SaveName = saveName;
                    m_files.Att_Expansion2 = url;

                    Model.pc_attachment m_attachment = new Model.pc_attachment();
                    m_attachment.Att_Name = fileName;
                    m_attachment.Att_Type = fileExtension;
                    m_attachment.Att_Url = saveName;
                    m_attachment.Att_Expansion1 = DateTime.Now.ToString();
                    m_attachment.Att_Expansion2 = url;
                    int resultId = bll_attachment.Add(m_attachment);
                    if (resultId > 0)
                    {
                        m_files.ResultId = resultId;
                        return Json(new { code = 0, msg = m_files });
                    }
                    else
                    {
                        return Json(new { code = -1, msg = m_files });
                    }

                }
                catch (Exception ex)
                {
                    return Json(new { code = -1, Message = ex.Message }, JsonRequestBehavior.AllowGet);
                }
            }
            else
            {

                return Json(new { code = false, Message = "请选择要上传的文件!" }, JsonRequestBehavior.AllowGet);
            }
        }

    }

    public class FilesModel
    {
        public int ResultId { get; set; }
        public string FileExtension { get; set; }
        public string SaveName { get; set; }
        public string DesName { get; set; }
        public string Att_Expansion2 { get; set; }
    }
}
上传文件的方法

三、JS

bubuko.com,布布扣
<script type="text/javascript">
    $(document).ready(function () {
        $("#uploadify").uploadify({
            uploader: /Content/JqueryUpload/js/uploadify.swf,
            script: /FileOperations/Upload,
            cancelImg: /Content/JqueryUpload/js/cancel.png,
            buttonText: upload,
            folder: /Content/JqueryUpload/upload,
            queueID: fileQueue,
//            ‘hideButton‘:true,
            multi: true,
            auto: true,
            //‘wmode‘: ‘transparent‘,
            onComplete: function (event, queueId, fileObj, response, data) {
                var obj = eval("(" + response + ")");
                var oldName = ‘‘;
                var newName = ‘‘;
                var fileType = ‘‘;
                var Att_Expansion2 = ‘‘;
                var id = ‘‘;
                switch (obj.msg.FileExtension) {
                    case .docx:
                        fileType = icon-word;
                        break;
                    case .doc:
                        fileType = icon-word;
                        break;
                    case .pdf:
                        fileType = icon-pdf;
                        break;
                    case .xlsx:
                        fileType = icon-excel;
                        break;
                    case .jpg:
                        fileType = icon-tupian;
                        break;
                    case .ppt:
                        fileType = icon-ppt;
                        break;
                    case .txt:
                        fileType = icon-txt;
                        break;
                }
                oldName = obj.msg.DesName;
                newName = obj.msg.SaveName;
                id = obj.msg.ResultId;
                Att_Expansion2 = obj.msg.Att_Expansion2;
                var liobj = <li id="add" tag=" + id + "><i class="icon-word"></i>" + oldName + "<a target="_blank" href= + Att_Expansion2 + >预览</a><a href="/Content/JqueryUpload/upload/ + newName + ">下载</a></li>;
                $(liobj).appendTo($(.annex-list));

            }
        });

    });
JS

四、调用

bubuko.com,布布扣
<label>附件</label>
            <ul class="annex-list">
                <li> 
                    <input type="file" name="uploadify" id="uploadify" style=" visibility:hidden" /><div id="fileQueue">
                    </div>
                </li>
            </ul>
调用

 

MVC 上传文件+预览

标签:des   style   blog   http   io   ar   color   os   sp   

原文地址:http://www.cnblogs.com/hejiah107/p/4134994.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!