我有转换图像的ZERO经验。我正在处理的网络应用程序上传图片并将jpeg图像转换为jp2图像。当我尝试编写图像时出现错误。错误是:权限被拒绝,无法打开图像。
.net code:
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;
}
}
}
答案 0 :(得分:0)
网站通常在特殊用户帐户下运行,该帐户与您自己的帐户不具有相同的权限。检查此特殊帐户是否具有您~/MediaUploader/
路径的写入权限。
答案 1 :(得分:0)
根据您托管网站的方式和位置,您可能无权写入您尝试撰写的文件夹。
如果您可以使用〜/ App_Data下面的文件夹,请尝试。按照惯例,大多数情况下的这个位置可用于存储需要在ASP .NET中进行写访问的文件,因此默认情况下可以使用您的生产系统进行写入。