ckfinder/_source/Connector/CommandHandlers/FileUploadCommandHandler.cs

(开头部分) 8KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/*
 * CKFinder
 * ========
 * http://ckfinder.com
 * Copyright (C) 2007-2012, CKSource - Frederico Knabben. All rights reserved.
 *
 * The software, this file and its contents are subject to the CKFinder
 * License. Please read the license.txt file before using, installing, copying,
 * modifying or distribute this file or part of its contents. The contents of
 * this file is part of the Source Code of CKFinder.
 */

using System;
using System.Web;
using System.Text.RegularExpressions;

namespace CKFinder.Connector.CommandHandlers
{
	internal class FileUploadCommandHandler : CommandHandlerBase
	{
		public FileUploadCommandHandler()
			: base()
		{
		}

		public override void SendResponse( System.Web.HttpResponse response )
		{
			int iErrorNumber = 0;
			string sFileName = "";
			string sFilePath = "";
			string sUnsafeFileName = "";

			try
			{
				this.CheckConnector();
				this.CheckRequest();

				if ( !this.CurrentFolder.CheckAcl( AccessControlRules.FileUpload ) )
				{
					ConnectorException.Throw( Errors.Unauthorized );
				}

				HttpPostedFile oFile = HttpContext.Current.Request.Files[HttpContext.Current.Request.Files.AllKeys[0]];

				if ( oFile != null )
				{
					sUnsafeFileName = System.IO.Path.GetFileName(oFile.FileName);
					sFileName = Regex.Replace( sUnsafeFileName, @"[\:\*\?\|\/]", "_", RegexOptions.None );
					if ( Config.Current.DisallowUnsafeCharacters )
						sFileName = sFileName.Replace(";","_");

					if ( sFileName != sUnsafeFileName )
						iErrorNumber = Errors.UploadedInvalidNameRenamed ;

					if ( Connector.CheckFileName( sFileName ) && !Config.Current.CheckIsHiddenFile( sFileName ) )
					{
						// Replace dots in the name with underscores (only one dot can be there... security issue).
						if ( Config.Current.ForceSingleExtension )
							sFileName = Regex.Replace( sFileName, @"\.(?![^.]*$)", "_", RegexOptions.None );

后面还有 190 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。