.net使用magick.net将图像jpg转换为jp2

问题描述 投票:0回答:2

我有转换图像的零经验。我正在处理的网络应用程序上传图片并将jpeg图像转换为jp2图像。当我尝试编写图像时出现错误。错误是:权限被拒绝,无法打开图像。

  1. 如何解决错误?
  2. 有一个更好的方法吗?

.net代码:

    using System;
    using System.Web;
    using System.IO;
    public class fileUploader : IHttpHandler {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            try
            {
                string dirFullPath = HttpContext.Current.Server.MapPath("~/MediaUploader/");
                string[] files;
                int numFiles;
                files = System.IO.Directory.GetFiles(dirFullPath);
                numFiles = files.Length;
                numFiles = numFiles + 1;
                string str_image = "";

                foreach (string s in context.Request.Files)
                {
                    HttpPostedFile file = context.Request.Files[s];
                    string fileName = file.FileName;
                    string fileExtension = file.ContentType;

                    if (!string.IsNullOrEmpty(fileName))
                    {
                        fileExtension = Path.GetExtension(fileName);
                        str_image = "MyPHOTO_" + numFiles.ToString() + fileExtension;
                        string pathToSave_100 = HttpContext.Current.Server.MapPath("~/MediaUploader/") + str_image;
                        file.SaveAs(pathToSave_100);
using (MagickImage image = new MagickImage(pathToSave_100))
{
  image.Format = Magick.jp2
  image.Write(pathToSave_100); //get error here: 
}
                    }
                }
                //  database record update logic here  ()

                context.Response.Write(str_image);
            }
            catch (Exception ac) 
            { 

            }
        }

        public bool IsReusable {
            get {
                return false;
            }
        }

    }
.net image
2个回答
0
投票

网站通常在特殊用户帐户下运行,该帐户与您自己的帐户不具有所有相同的权限。检查此特殊帐户是否具有对~/MediaUploader/路径的写入权限。


0
投票

根据您托管网站的方式和位置,您可能没有权限写入您尝试编写的文件夹。

请尝试使用〜/ App_Data下面的文件夹。按照惯例,大多数情况下的这个位置可用于存储需要在ASP .NET中进行写访问的文件,因此默认情况下可以使用您的生产系统进行写入。

© www.soinside.com 2019 - 2024. All rights reserved.