【问题标题】:.net converting image jpg to jp2 using magick.net.net 使用 magick.net 将图像 jpg 转换为 jp2
【发布时间】:2017-12-16 06:46:32
【问题描述】:

我在转换图像方面的经验为零。我正在开发的网络应用程序上传图片并将 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


    【解决方案1】:

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

    【讨论】:

    • 我如何识别这个“特殊帐户”?有什么资源可以指点我吗?
    【解决方案2】:

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

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

    【讨论】:

    • 它在私人服务器上...应用程序将在 Windows 2012 服务器上
    • 然后你可以去你要使用的文件夹并为IIS分配写权限
    猜你喜欢
    • 1970-01-01
    • 2020-02-26
    • 2011-06-28
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 2012-06-01
    • 2015-11-17
    相关资源
    最近更新 更多