資源簡介
【實例簡介】
編譯器圖片上傳,和服務器圖片查看功能
【核心代碼】
/// <summary>
/// 編輯器文件查看
/// </summary>
/// <returns></returns>
public ActionResult ProcessRequest()
{
//String aspxUrl = context.Request.Path.Substring(0, context.Request.Path.LastIndexOf("/") 1);
//根目錄路徑,相對路徑
String rootPath = Path.Combine(Server.MapPath("~"), "Upload", DateTime.Now.ToString("yyyyMM")); //"D:\\Web_site\\fzzzsd_cn\\imimg.fzzzsd.cn\\wwwroot\\Upload";
//根目錄URL,可以指定絕對路徑,
String rootUrl = Path.Combine(Server.MapPath("~"), "Upload", DateTime.Now.ToString("yyyyMM"));// "D:\\Web_site\\fzzzsd_cn\\imimg.fzzzsd.cn\\wwwroot\\Upload";
//圖片擴展名
String fileTypes = "gif,jpg,jpeg,png,bmp";
String currentPath = "";
String currentUrl = "";
String currentDirPath = "";
String moveupDirPath = "";
//根據path參數,設置各路徑和URL
String path = Request.QueryString["path"];
path = String.IsNullOrEmpty(path) ? "" : path;
if (path == "")
{
currentPath = rootPath;// Server.MapPath(rootPath);
currentUrl = rootUrl;
currentDirPath = "";
moveupDirPath = "";
}
else
{
currentPath = (rootPath) path;//Server.MapPath(rootPath) path;
currentUrl = rootUrl path;
currentDirPath = path;
moveupDirPath = Regex.Replace(currentDirPath, @"(.*?)[^\/] \/$", "$1");
}
//排序形式,name or size or type
String order = Request.QueryString["order"];
order = String.IsNullOrEmpty(order) ? "" : order.ToLower();
//不允許使用..移動到上一級目錄
if (Regex.IsMatch(path, @"\.\."))
{
Response.Write("Access is not allowed.");
Response.End();
}
//最后一個字符不是/
if (path != "" && !path.EndsWith("/"))
{
Response.Write("Parameter is not valid.");
Response.End();
}
//目錄不存在或不是目錄
if (!Directory.Exists(currentPath))
{
Response.Write("Directory does not exist.");
Response.End();
}
//遍歷目錄取得文件信息
string[] dirList = Directory.GetDirectories(currentPath);
string[] fileList = Directory.GetFiles(currentPath);
switch (order)
{
case "size":
Array.Sort(dirList, new NameSorter());
Array.Sort(fileList, new SizeSorter());
break;
case "type":
Array.Sort(dirList, new NameSorter());
Array.Sort(fileList, new TypeSorter());
break;
case "name":
default:
Array.Sort(dirList, new NameSorter());
Array.Sort(fileList, new NameSorter());
break;
}
Hashtable result = new Hashtable();
result["moveup_dir_path"] = moveupDirPath;
result["current_dir_path"] = currentDirPath;
result["current_url"] = currentUrl;
result["total_count"] = dirList.Length fileList.Length;
List<Hashtable> dirFileList = new List<Hashtable>();
result["file_list"] = dirFileList;
for (int i = 0; i < dirList.Length; i )
{
DirectoryInfo dir = new DirectoryInfo(dirList[i]);
Hashtable hash = new Hashtable();
hash["is_dir"] = true;
hash["has_file"] = (dir.GetFileSystemInfos().Length > 0);
hash["filesize"] = 0;
hash["is_photo"] = false;
hash["filetype"] = "";
hash["filename"] = dir.Name;
hash["datetime"] = dir.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss");
dirFileList.Add(hash);
}
for (int i = 0; i < fileList.Length; i )
{
FileInfo file = new FileInfo(fileList[i]);
Hashtable hash = new Hashtable();
hash["is_dir"] = false;
hash["has_file"] = false;
hash["filesize"] = file.Length;
hash["is_photo"] = (Array.IndexOf(fileTypes.Split(','), file.Extension.Substring(1).ToLower()) >= 0);
hash["filetype"] = file.Extension.Substring(1);
hash["filename"] = file.Name;
hash["datetime"] = file.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss");
dirFileList.Add(hash);
}
//Response.AddHeader("Content-Type", "application/json; charset=UTF-8");
//context.Response.Write(JsonMapper.ToJson(result));
//context.Response.End();
return Json(result, "text/html;charset=UTF-8", JsonRequestBehavior.AllowGet);
}
代碼片段和文件信息
-----------?---------??----------?-----??----
?????文件??????49664??2016-07-13?21:52??編輯器\kindeditor\asp.net\bin\LitJSON.dll
?????文件???????1686??2016-07-13?21:52??編輯器\kindeditor\asp.net\demo.aspx
?????文件???????5970??2016-07-13?21:52??編輯器\kindeditor\asp.net\file_manager_json.ashx
?????文件????????466??2016-07-13?21:52??編輯器\kindeditor\asp.net\README.txt
?????文件???????3399??2016-07-13?21:52??編輯器\kindeditor\asp.net\upload_json.ashx
?????文件?????178158??2016-07-13?21:52??編輯器\kindeditor\kindeditor-all-min.js
?????文件?????313352??2016-07-13?21:52??編輯器\kindeditor\kindeditor-all.js
?????文件??????93336??2016-07-13?21:52??編輯器\kindeditor\kindeditor-min.js
?????文件?????164284??2016-07-13?21:52??編輯器\kindeditor\kindeditor.js
?????文件???????9591??2016-07-13?21:52??編輯器\kindeditor\lang\ar.js
?????文件???????7979??2016-07-13?21:52??編輯器\kindeditor\lang\en.js
?????文件???????8850??2016-07-13?21:52??編輯器\kindeditor\lang\ko.js
?????文件???????8488??2016-07-13?21:52??編輯器\kindeditor\lang\zh_CN.js
?????文件???????8388??2016-07-13?21:52??編輯器\kindeditor\lang\zh_TW.js
?????文件??????27032??2016-07-13?21:52??編輯器\kindeditor\license.txt
?????文件???????1513??2016-07-13?21:52??編輯器\kindeditor\plugins\anchor\anchor.js
?????文件????????802??2016-07-13?21:52??編輯器\kindeditor\plugins\autoheight\autoheight.js
?????文件???????3486??2016-07-13?21:52??編輯器\kindeditor\plugins\baidumap\baidumap.js
?????文件???????3522??2016-07-13?21:52??編輯器\kindeditor\plugins\baidumap\index.html
?????文件???????1222??2016-07-13?21:52??編輯器\kindeditor\plugins\baidumap\map.html
?????文件???????1185??2016-07-13?21:52??編輯器\kindeditor\plugins\clearhtml\clearhtml.js
?????文件???????2192??2016-07-13?21:52??編輯器\kindeditor\plugins\code\code.js
?????文件????????973??2016-07-13?21:52??編輯器\kindeditor\plugins\code\prettify.css
?????文件??????13660??2016-07-13?21:52??編輯器\kindeditor\plugins\code\prettify.js
?????文件???????4065??2016-07-13?21:52??編輯器\kindeditor\plugins\emoticons\emoticons.js
?????文件???????1810??2016-07-13?21:52??編輯器\kindeditor\plugins\emoticons\images\0.gif
?????文件???????1582??2016-07-13?21:52??編輯器\kindeditor\plugins\emoticons\images\1.gif
?????文件???????3716??2016-07-13?21:52??編輯器\kindeditor\plugins\emoticons\images\10.gif
?????文件???????1780??2016-07-13?21:52??編輯器\kindeditor\plugins\emoticons\images\100.gif
?????文件???????2443??2016-07-13?21:52??編輯器\kindeditor\plugins\emoticons\images\101.gif
............此處省略219個文件信息
- 上一篇:UDP server 控制臺程序
- 下一篇:Panle界面切換
評論
共有 條評論