小编Dan*_*iel的帖子

C# - 将图像输出到响应输出流,给出GDI +错误

将图像输出到输出流时,是否需要临时存储?在将图像保存到文件时,我收到通常与文件夹权限错误相关的"通用GDI +"错误.

我正在对图像做的唯一事情是添加一些文本.即使我直接输出图像而没有修改,我仍然会得到错误.例如,这样做会给我错误:

using (Bitmap image = new Bitmap(context.Server.MapPath("images/stars_5.png")))
{
    image.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png);
}
Run Code Online (Sandbox Code Playgroud)

在运行带有IIS 7.5和ASP.NET 2.0的Windows 7的本地计算机上,一切正常.问题出现在运行带有IIS 6和ASP.NET 2.0的Windows Server 2003的QA服务器上.

给出错误的行是:

image.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png);
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪:

[ExternalException (0x80004005): A generic error occurred in GDI+.]
   System.Drawing.Image.Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams) +378002
   System.Drawing.Image.Save(Stream stream, ImageFormat format) +36
   GetRating.ProcessRequest(HttpContext context) in d:\inetpub\wwwroot\SymInfoQA\Apps\tools\Rating\GetRating.ashx:54
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
Run Code Online (Sandbox Code Playgroud)

c# asp.net gdi+

41
推荐指数
2
解决办法
5万
查看次数

$ _FILES数组只有部分信息

我正在尝试用$ _FILES数组调试一个非常奇怪的问题.当我尝试上传文件时,只设置了'name'键,类型,tmp_name等是空的,它返回错误#1.例如:

Array
(
    [name] => test.doc
    [type] => 
    [tmp_name] => 
    [error] => 1
    [size] => 0
)
Run Code Online (Sandbox Code Playgroud)

test.doc是一个有效的文件,我可以毫无问题地打开它.这发生在我测试的一堆文件中; doc,pdf,xls,ppt,jpg.唯一有效的文件类型是txt和gif.

我在CentOS 5.3 w/PHP 5.2.6,Apache 2.2.3和Ubuntu 8.04 w/PHP 5.2.4,Apache 2.2.8上都遇到了这个问题.

我以为我可能是mime类型,但我检查了mime类型,所有常见的类型都可用.

有任何想法吗?我以前从未遇到过这个问题!

谢谢.

php file-upload

4
推荐指数
2
解决办法
305
查看次数

标签 统计

asp.net ×1

c# ×1

file-upload ×1

gdi+ ×1

php ×1