主题: 4.0 上传 图片 或附近 (大于5M) 直接 崩溃的问题
作者: 万里秋风, 发布日期: 2011-09-29 17:06:22, 浏览数: 7341

上传 图片 或附近

 

上传的文件 或 图片 大小 大于 5M  的时候,直接报 没有使用 权限。

 

上传 3M 以内的 无异常   

 

报错如下:

 

行: 3381
錯誤: 沒有使用權限

return iframe.contentDocument || iframe.contentWindow.document;

 

哪位大侠 能回答下,怎么解决这种问题????

作者: pcfinal, 发布日期: 2011-09-29 17:24:16

去修改对应上传语言的大小限制

asp的在upload_json.asp

第312行

'最大文件大小
maxSize = 5 * 1024 * 1024 '5M


回复
作者: 万里秋风, 发布日期: 2011-09-29 17:32:29

回复pcfinal:

 我用的 asp.net mvc3  ; 没有用到 upload_json 等文件

 

还有,就算用到了 这些文件,也要跳进了以后的事情了

 

关键在脚本都报错了

还没有跳到 后台;我在后台有做文件 大小 设定。

 

上传 视频也是同样的报错

 

小于 3M 的都正常

回复
作者: 小浪子, 发布日期: 2011-09-29 17:36:24
在:web.config里面设置大小
回复
作者: 万里秋风, 发布日期: 2011-09-30 08:39:17

报错的是脚本

 

webconfig 怎么配?

 

我感觉应该还是 javascript 的问题。

 

望坛主 给个解决方案?

回复
作者: 万里秋风, 发布日期: 2011-09-30 08:48:10

发现不仅仅是我的代码有问题

 

我用KindEditor 4.0 里面的 Demo 上传文件 ,图片,视频 的 时候,如果文件大小 超过 5M 也会报

 

没有权限

 

function _iframeDoc(iframe) {
 iframe = _get(iframe);
 return iframe.contentDocument || iframe.contentWindow.document;
}

 

谁能告诉 怎么解决这个问题吗

 

大家 可以在自己的 Kindeditor 里面试试,肯定会报错(文件一定要够大)

 

哪位大哥 能回答下 啊?????

 

为什么 3M 的 上传 就可以跳转到 后台 函数

 

大于 5M 就 跳不进去呢????

 

回复
作者: 小浪子, 发布日期: 2011-09-30 10:16:26

web.config设置

<httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="10240" executionTimeout="300" />

 

10240是:10MB

 

<?xml version="1.0"?>
<!--
    注意: 除了手动编辑此文件以外,您还可以使用
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
     “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表在
    machine.config.comments 中,该文件通常位于
    \Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
 <connectionStrings/>
 <system.web>
  <httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="10240" executionTimeout="300" />
  <compilation debug="true">
  </compilation>
  <customErrors mode="Off">
  </customErrors>
 </system.web>
</configuration>

自己试下。

回复
作者: 万里秋风, 发布日期: 2011-09-30 11:08:23

回复小浪子:真的可以了也

 

小浪凶,太强大了

 

这是为什么呢?

回复
作者: 小浪子, 发布日期: 2011-09-30 11:49:13

回复万里秋风:.NET那个默认好像是3MB。。

只能通过web.config来设置。反正具体的我不记得了。只有这样设置了就行。

 

帮你把问题解决了就行。

回复
作者: 万里秋风, 发布日期: 2011-09-30 16:25:39

回复小浪子:为表 对 小浪兄 的感谢;并继承小浪兄 对于大家无私奉献的 精神!

 

现将 asp.net mvc3 下使用 kindeditor 4.0 的方法 汇总如下:

 

希望跟我一样 遇到 该类问题的 朋友 能够 节省时间。

 

        [AcceptVerbs(HttpVerbs.Post)]
        public void UploadImage()
        {
            string savePath = "../temp/496C46BB_35D54C_7D-97C8B_FA7D3F5D86B_temp/";
            string saveUrl = "../../temp/496C46BB_35D54C_7D-97C8B_FA7D3F5D86B_temp/";

            Hashtable extTable = new Hashtable();
            extTable.Add("image", "gif,jpg,jpeg,png,bmp");
            extTable.Add("flash", "swf,flv");
            extTable.Add("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");
            extTable.Add("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");

            bool checkupload = true;
            int maxSize = 1024*1024;//1M
            HttpPostedFileBase file = Request.Files["imgFile"];
            Hashtable hash = new Hashtable();
            if (file == null || file.ContentLength <= 0)
            {
                checkupload = false;
                hash = new Hashtable();
                hash["error"] = 1;
                hash["message"] = "请选择要上传的文件!";
                Response.AddHeader("Content-Type", "text/html; charset=UTF-8");
                Response.Write(JsonMapper.ToJson(hash));
                Response.End();
            }
          
            string dirPath = Server.MapPath(savePath);
            if (!Directory.Exists(dirPath))
            {
                checkupload = false;
                hash = new Hashtable();
                hash["error"] = 1;
                hash["message"] = "上传目录不存在!";
                Response.AddHeader("Content-Type", "text/html; charset=UTF-8");
                Response.Write(JsonMapper.ToJson(hash));
                Response.End();
            }

            String dirName = Request.QueryString["dir"];
            if (String.IsNullOrEmpty(dirName))
            {
                dirName = "image";
            }
            if (!extTable.ContainsKey(dirName))
            {
                checkupload = false;
                hash = new Hashtable();
                hash["error"] = 1;
                hash["message"] = "目录名不正确!";
                Response.AddHeader("Content-Type", "text/html; charset=UTF-8");
                Response.Write(JsonMapper.ToJson(hash));
                Response.End();
            }
            string fileName = file.FileName;
            string fileExt = Path.GetExtension(fileName).ToLower();

            if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(((String)extTable[dirName]).Split(','), fileExt.Substring(1).ToLower()) == -1)
            {
                checkupload = false;
                hash = new Hashtable();
                hash["error"] = 1;
                hash["message"] = "上传文件的扩展名是无效的;只允许" + ((String)extTable[dirName]) + "格式!";
                Response.AddHeader("Content-Type", "text/html; charset=UTF-8");
                Response.Write(hash["message"]);
                Response.End();
            }

            string fileType = "文件";
            switch (dirName.ToLower())
            {
                case "image":
                    fileType = "图片";
                    break;
                case "flash":
                    fileType = "Flash文件";
                    maxSize = 10 * maxSize;
                    break;
                case "media":
                    fileType = "视频文件";
                    maxSize = 15 * maxSize;
                    break;
                case "file":
                    maxSize = 5 * maxSize;
                    break;
                default:
                    break;
            }

            if (file.InputStream == null || file.InputStream.Length > maxSize)
            {
                checkupload = false;
                hash = new Hashtable();
                hash["error"] = 1;
                hash["message"] = "上传"+fileType+"的大小不能超过"+(maxSize/(1024*1024))+"M!";
                Response.AddHeader("Content-Type", "text/html; charset=UTF-8");
                Response.Write(hash["message"]);
                Response.End();
            }
            if (checkupload)
            {
                string newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + fileExt;
                string filePath = dirPath + newFileName;
                file.SaveAs(filePath);
                string fileUrl = saveUrl + newFileName;

                hash = new Hashtable();
                hash["error"] = 0;
                hash["url"] = fileUrl;
                Response.AddHeader("Content-Type", "text/html; charset=UTF-8");
                Response.Write(JsonMapper.ToJson(hash));
                Response.End();
            }
        }

 

最后,感谢 小浪兄 的无私帮助!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

回复
发表新帖 发表回复