1. 程式人生 > >關於Uploadify檔案上傳 io error

關於Uploadify檔案上傳 io error

 <link rel="Stylesheet" href="js/uploadify.css" />
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/swfobject.js"></script>
    <script type="text/javascript" src="js/jquery.uploadify.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#uploadify").uploadify({
                'uploader': 'js/uploadify.swf',
                'script': 'UploadHandler.ashx',
                'cancelImg': 'js/cancel.png',
                'folder': 'upload',
                'queueID': 'fileQueue',
                'auto': false,
                'multi': true,
                'buttonImg': 'images/updaload.jpg',
                'sizeLimit': '99999999999'  // 注意這裡,這是檔案大小。。。
            });
        });  
    </script>
<div id="fileQueue">
        <input type="file" name="uploadify" id="uploadify" />
        <a href="javascript:$('#uploadify').uploadifyUpload()">上傳</a>| <a href="javascript:$('#uploadify').uploadifyClearQueue()">
            取消上傳</a>
    </div>

下面是UploadHandler.ashx裡的程式碼 網上都有,自己記下以後忘記了可以拿出來看看

 public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        context.Response.Charset = "utf-8";
      
        HttpPostedFile file = context.Request.Files["Filedata"];
        string uploadPath =
            HttpContext.Current.Server.MapPath(@context.Request["folder"]) + "\\";

        if (file != null)
        {
            if (!System.IO.Directory.Exists(uploadPath))
            {
                System.IO.Directory.CreateDirectory(uploadPath);
            }
            file.SaveAs(uploadPath + file.FileName);
            //下面這句程式碼缺少的話,上傳成功後上傳佇列的顯示不會自動消失
            context.Response.Write("1");
        }
        else
        {
            context.Response.Write("0");
        }
    }

一切都很正常 但是上傳檔案大於5M時 就出現 IO Error的錯誤

解決方法  參見第一段程式碼  加入 'sizeLimit': '99999999999'  設定檔案的大小

僅僅是這樣 依舊會報錯 還需要在web.config 的<system.web>中加入

  <httpRuntime maxRequestLength="999999999" executionTimeout="50000" />

再試一次 解決了

PS 上傳按鈕本來是英文的 在JS 設定一下你想要按鈕的背景圖片就好了

'buttonImg': 'images/updaload.jpg',