修改BlogEngine.Net支持随机图片名称

2009-04-25 13:13:00 |

代码比较简单,原先的代码比较拉杂,不说了,能用先

源代码在 \BlogEngine.Core\API\MetaWeblog\MetaWeblogHandler.cs 中

internal MWAMediaInfo NewMediaObject(string blogID, string userName, string password, MWAMediaObject mediaObject, HttpContext request)
{
    ValidateRequest(userName, password);

    MWAMediaInfo mediaInfo = new MWAMediaInfo();

    string rootPath = BlogSettings.Instance.StorageLocation + "files/";
    string serverPath = request.Server.MapPath(rootPath);
    string saveFolder = serverPath;
    string fileName = "Jea"+Guid.NewGuid().ToString() ;
    FileInfo f = new FileInfo(mediaObject.name);
    fileName+=f.Extension;
   
// Check/Create Folders & Fix fileName
    if (mediaObject.name.LastIndexOf('/') > -1)
    {
        saveFolder += mediaObject.name.Substring(0, mediaObject.name.LastIndexOf('/'));
        saveFolder = saveFolder.Replace('/', Path.DirectorySeparatorChar);
        mediaObject.name = mediaObject.name.Substring(0, mediaObject.name.LastIndexOf('/'))+"/" + fileName;
    }
    else
    {
        if (saveFolder.EndsWith(Path.DirectorySeparatorChar.ToString()))
            saveFolder = saveFolder.Substring(0, saveFolder.Length - 1);
        mediaObject.name = fileName;
    }
    if (!Directory.Exists(saveFolder))
        Directory.CreateDirectory(saveFolder);
    saveFolder += Path.DirectorySeparatorChar;
    // Save File
    FileStream fs = new FileStream(saveFolder + fileName, FileMode.Create);
    BinaryWriter bw = new BinaryWriter(fs);
    bw.Write(mediaObject.bits);
    bw.Close();

    // Set Url
    string rootUrl = Utils.AbsoluteWebRoot.ToString();// request.Request.Url.ToString().Substring(0, request.Request.Url.ToString().IndexOf("metaweblog.axd"));

    string mediaType = mediaObject.type;
    if (mediaType.IndexOf('/') > -1)
        mediaType = mediaType.Substring(0, mediaType.IndexOf('/'));
    switch (mediaType)
    {
        case "image":
        case "notsent": // If there wasn't a type, let's pretend it is an image.  (Thanks Zoundry.  This is for you.)
            rootUrl += "image.axd?picture=";
            break;
        default:
            rootUrl += "file.axd?file=";
            break;
    }

    mediaInfo.url = rootUrl + mediaObject.name;
    return mediaInfo;
}


Jeason Zhao (沈胜衣,斛律光) ------雪饮再现,一个人的江湖
我知道我是谁,我是沈胜衣,默默的活着,就像空气。

Add comment




biuquote
  • Comment
  • Preview
Loading