FCKeditor 上傳修改,新增對檔案的型別以及大小的限制(ASP.NET C#)
用了FCKeditor以後才知道,在效能上確實是挺優越的,特別是在載入的速度上,遠比其它的編輯器要來得快,而且跨語言跨平臺,也不會像FreeTextBox那樣在頁面中加入一大堆的ViewState檢視狀態程式碼,減輕了頁面檔案的重量,提高了載入速度.
編輯器本身也內建了檔案上傳功能,但他卻不對檔案的型別以及大小做出限制,以至於帶有安全憂患,萬一給人上傳了一個木馬或者一個上面兆的影片檔案怎麼辦,當然,修改*config.js檔案可以解決,但似乎存在著某方面的安全隱患吧.
由於FCKeditor本身是開源的,所以我可以對裡面的某些程式碼進行修改.
首先是對FileWorkerBase.cs基類的修改
namespace FredCK.FCKeditorV2
{
publicabstractclass FileWorkerBase : System.Web.UI.Page
{
privateconststring DEFAULT_USER_FILES_PATH ="/UserFiles/";
privateconststring DEFAULT_USER_FILES_UPLOADTYPE =".jpg.jpeg.bmp.gif.png.zip.rar.swf.";//預設允許上傳檔案型別
privateconstint DEFAULT_USER_FILES_UPLOADSIZE
privatestring sUserFilesPath;
privatestring sUserFilesDirectory;
privatestring sUserUploadType;
privateint iUserUploadSize =0;
protectedstring UserFilesPath
{
get
{
if (sUserFilesPath ==null)
// Try to get from the "Application".
sUserFilesPath = (string)Application["FCKeditor:UserFilesPath"];
// Try to get from the "Session".
if (sUserFilesPath ==null|| sUserFilesPath.Length ==0)
{
sUserFilesPath = (string)Session["FCKeditor:UserFilesPath"];
// Try to get from the Web.config file.
if (sUserFilesPath ==null|| sUserFilesPath.Length ==0)
{
sUserFilesPath = System.Web.Configuration.WebConfigurationManager.AppSettings["FCKeditor:UserFilesPath"];
// Otherwise use the default value.
if (sUserFilesPath ==null|| sUserFilesPath.Length ==0)
sUserFilesPath = DEFAULT_USER_FILES_PATH;
// Try to get from the URL.
if (sUserFilesPath ==null|| sUserFilesPath.Length ==0)
{
sUserFilesPath = Request.QueryString["ServerPath"];
}
}
}
// Check that the user path ends with slash ("/")
if (!sUserFilesPath.EndsWith("/"))
sUserFilesPath +="/";
}
return sUserFilesPath;
}
}
///<summary>
/// The absolution path (server side) of the user files directory. It
/// is based on the <see cref="FileWorkerBase.UserFilesPath"/>.
///</summary>
protectedstring UserFilesDirectory
{
get
{
if (sUserFilesDirectory ==null)
{
// Get the local (server) directory path translation.
sUserFilesDirectory = Server.MapPath(this.UserFilesPath);
}
return sUserFilesDirectory;
}
}
///<summary>
/// 獲取允許上傳的型別
///</summary>
protectedstring UserUploadType
{
get
{
if (sUserUploadType ==null)
{
// Try to get from the "Application".
sUserUploadType = (string)Application["FCKeditor:UserUploadType"];
// Try to get from the "Session".
if (sUserUploadType ==null|| sUserUploadType.Length ==0)
{
sUserUploadType = (string)Session["FCKeditor:UserUploadType"];
// Try to get from the Web.config file.
if (sUserUploadType ==null|| sUserUploadType.Length ==0)
{
sUserUploadType = System.Web.Configuration.WebConfigurationManager.AppSettings["FCKeditor:UserUploadType"];
// Otherwise use the default value.
if (sUserUploadType ==null|| sUserUploadType.Length ==0)
sUserUploadType = DEFAULT_USER_FILES_UPLOADTYPE;
}
}
// Check that the user path starts and ends with slash (".")
if (!sUserUploadType.StartsWith("."))
sUserUploadType ="."+ sUserUploadType;
if (!sUserUploadType.EndsWith("."))
sUserUploadType +=".";
}
return sUserUploadType;
}
}
///<summary>
/// 獲取允許上傳的檔案最大限制
///</summary>
protectedint UserUploadSize
{
get
{
if (iUserUploadSize <1)
{
iUserUploadSize = Convert.ToInt32(Application["FCKeditor:UserUploadSize"]);
if (iUserUploadSize <1)
{
iUserUploadSize = Convert.ToInt32(Session["FCKeditor:UserUploadSize"]);
if (iUserUploadSize <1)
{
iUserUploadSize = Convert.ToInt32(System.Web.Configuration.WebConfigurationManager.AppSettings["FCKeditor:UserUploadSize"]);
if (iUserUploadSize <1)
{
iUserUploadSize = DEFAULT_USER_FILES_UPLOADSIZE;
}
}
}
}
return iUserUploadSize;
}
}
}
}
接著就是對點選"瀏覽伺服器"頁面的上傳部分的修改
以下是對FileBrowserConnector.cs中的FileUpload()函式的修改
privatevoid FileUpload(string resourceType, string currentFolder){
HttpPostedFile oFile = Request.Files["NewFile"];
string sErrorNumber ="0";
string sFileName ="";
if (oFile !=null&& oFile.ContentLength >0)
{
// Map the virtual path to the local server path.
string sServerDir =this.ServerMapFolder(resourceType, currentFolder);
/*
// Get the uploaded file name.
sFileName = System.IO.Path.GetFileName( oFile.FileName ) ;
int iCounter = 0 ;
while ( true )
{
相關推薦
FCKeditor 上傳修改,新增對檔案的型別以及大小的限制(ASP.NET C#)
用了FCKeditor以後才知道,在效能上確實是挺優越的,特別是在載入的速度上,遠比其它的編輯器要來得快,而且跨語言跨平臺,也不會像FreeTextBox那樣在頁面中加入一大堆的ViewState檢視狀態程式碼,減輕了頁面檔案的重量,提高了載入速度. 編輯器本身也內建了檔案
layui檔案上傳回調前對檔案型別及大小判斷
layui.use(['upload', 'form'], function () { var upload = layui.upload; var form = layui.form; upload.r
uploadfive.js實現檔案上傳不能判斷檔案型別的問題
在專案中利用uploadfive.js 實現檔案上傳的時候,遇到一個問題,即上傳檔案時不能判斷檔案型別,特此記錄一下。 官網中檔案型別的判斷是使用fileType欄位,如下圖 : 但在專案中使用該
檔案上傳字尾名與檔案型別對照表
IE 火狐(FF) id 字尾名 php識別出的檔案型別 0 gif image/gif 1 jpg image/jpeg 2 png image/png 3 bmp image/bmp 4 psd application/octet-stream 5 ico
.NET快速資訊化系統開發框架 V3.2->Web版本新增“檔案管理中心”集上傳、下載、檔案共享等一身,非常實用的功能
檔案中心是3.2版本開始新增的一個非常實用功能,可以歸檔自己平時所需要的檔案,也可以把檔案分享給別人,更像一個知識中心。檔案中心主介面如下圖所示,左側“我的網盤”展示了使用者對檔案的分類,只能自己看到,“公共盤”中的檔案所有使用者都可以看到。選擇一個分類,右側列出了當前分類的所有檔案(第一列
javaweb 簡單的檔案上傳動態新增上傳檔案數量[從學習到工作(六)]
1.jsp頁面主要程式碼塊 <script type="text/javascript" src="<%=basePath%>js/jquery.min.js"></script> <form actio
.NET快速資訊化系統開發框架 V3.2->Web版本新增“檔案管理中心”集上傳、下載、檔案共享等一身,非常實用的功能
檔案中心是3.2版本開始新增的一個非常實用功能,可以歸檔自己平時所需要的檔案,也可以把檔案分享給別人,更像一個知識中心。檔案中心主介面如下圖所示,左側“我的網盤”展示了使用者對檔案的分類,只能自己看到,“公共盤”中的檔案所有使用者都可以看到。選擇一個分類,右側列出了當前分類的所有檔案(第一列會根據檔案的型
asp.net(c#)上傳檔案時檢測檔案型別方法小結
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using Syst
ajaxFileUpload+struts2實現多檔案上傳(動態新增檔案上傳框)
但只是固定的檔案個數,如果需求不確定是多少檔案 則我們就需要動態的新增檔案上傳框,以實現靈活性。基於上篇基本框架是不變的,主要修改以下幾個方面1、jQuery實現動態新增刪除檔案上傳框2、獲取檔案上傳框
struts2檔案上傳修改為cos框架處理一系列事情
前段時間Struts2出來一個編號CVE-2017-5638的漏洞,影響系統及版本:Struts 2.3.5 - Struts 2.3.31、Struts 2.5 - Struts 2.5.10! 專案經理簡單修復了一下,他直接在配置檔案中新增了這麼個屬性! 屬性如下:
【SVN】Windows下如何使用SVN上傳、新增、刪除檔案
操作步驟 1. 本地建立倉庫:在本地新建資料夾,右鍵 —> TortoiseSVN —> Create repository here; 2. 下載已有倉庫:在本地新建資料夾,右鍵 —> Checkout —> 輸入使用者名稱密碼、下載的檔案路徑;
ExtJS4 上傳檔案型別和大小的判斷方法(例項) .
接本人博文《》,在上面的基礎上加上ExtJS上傳檔案前對檔案型別和檔案大小進行判斷,不符合要求的將不能被上傳。 PS:本人的原創博文是在開發中遇到的一些常見問題或難題作記錄。由於我是初學者,知識面還遠遠不夠,所以可能有許多地方並不是很好的解決方案,希望朋友你有想法能給予答覆。謝謝! 開始本文的方案描述(原
SpringMVC中檔案上傳,新增enctype="multipart/form-data"後表單其他屬性為空
最近在做一個小型專案,用SpringMVC+Spring+Mybatis做的,開始沒有做圖片上傳,也沒有用Spring MVC做過,以前是用Struts2搞定的,所以很自然的, 在設定form表單上的屬性就用了enctype=”multipart/form-da
php中對上傳到伺服器的檔案重新命名
原始碼:$path = './upfiles/'. $_FILES['file']['name'];$filename = basename($path);// basename($path):返回上傳檔案的基本的檔名,如:檔名.doc $actualname = $fil
phpcms v9 表單新增檔案上傳欄位單個檔案(downfile)
$string .= $str."<input type='text' name='info[$field]' id='$field' value='$value' class='input-text' style='width:80%' readonly='readonly' /> <
開發亞馬遜 MWS中feed上傳修改商品資訊 通過GetFeedSubmissionResult來判斷上傳資料是否成功
GetFeedSubmissionResultSample.php 中的方法如下 $config = array ( 'ServiceURL' => $serviceUrl, 'ProxyHost' => null, 'ProxyPort' => -1, 'MaxErrorRetry' =
ionic拍照上傳圖片與從檔案中選擇圖片
本文主要使用cordova實現拍照上傳,拍照上傳或從資料夾中選擇上傳圖片 流程:拍照或選擇圖片===>獲取本機路徑==>向伺服器上傳圖片,獲取伺服器上圖片路徑 一、環境準備 安裝 cordova-plugin-camera 外掛 &n
使用fckeditor上傳多張圖片
流程: 1.使用fck上傳圖片到後臺 2.後臺上傳圖片到伺服器端 3.伺服器端返回上傳資訊 1.jsp頁面 <script type="text/javascript"> $(function(){ var tObj; $("#tabs a").each(funct
使用java向FTP上傳或下載壓縮檔案時的問題
今天在使用java向FTP伺服器傳輸檔案時遇到了問題,這個檔案是好多圖片的壓縮檔案,直接使用 ftpClient.storeFile(f.getName(), instream); 會將壓縮檔案傳入FTP伺服器,但是在FTP伺服器解壓時發現,壓縮包裡面的圖片解壓不出來,檔案大小是一樣的,但
django設定並獲取cookie/session,檔案上傳,ajax接收檔案,post/get請求及跨域請求等的方法
django設定並獲取cookie/session,檔案上傳,ajax接收檔案等的方法: views.py檔案: from django.shortcuts import render,HttpResponse,redirect import datetime import json from