我在google以及stackoverflow上搜索了很多但是没有得到任何令我满意的解决方案。
我必须在某个特定网址上传图片,该网址以 .ashx 扩展名结尾。 我已经看到如何在PHP服务器上传,但在这里我没有得到任何线索。
请提供一些示例代码帮助我。
答案 0 :(得分:1)
根据我的理解,aspx是页面,而.ashx是以字符串格式和.ashx file is a web handler. A web handler file works just like an aspx file...响应输出的代码文件。
所以我们认为.ashx和.aspx一样,那么这段代码应该适合你(我为.aspx页面运行)。这是对.net服务器的请求。
<强>的iOS 强>
UIImage *img = [UIImage imageNamed:@"test.png"];
NSData *imageData = UIImageJPEGRepresentation ( img , 90 );
NSString *urlString =@"www.xyz.com/ImageUpload.aspx?filename=test";
NSLog(@"IMAGE_UPLOAD_URL -------------> %@",urlString);
NSMutableURLRequest *request = [[[ NSMutableURLRequest alloc ] init ] autorelease ];
[request setURL :[ NSURL URLWithString :urlString]];
[request setHTTPMethod : @"POST" ];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [ NSString stringWithFormat : @"multipart/form-data; boundary=%@" ,boundary];
[request addValue :contentType forHTTPHeaderField : @"Content-Type" ];
/* body of the post */
NSMutableData *body = [ NSMutableData data ];
[body appendData :[ NSData dataWithData :imageData]];
[request setHTTPBody :body];
NSData *returnData = [ NSURLConnection sendSynchronousRequest :request returningResponse : nil error : nil ];
NSString *returnString = [[ NSString alloc ] initWithData :returnData encoding : NSUTF8StringEncoding ];
InfoLog(@"_______ IMAGE_UPLOAD response -------------> .%@.",returnString);
<强> .NET 强>
为.aspx页面检索此图像
if (Request.QueryString["filename"] != null)
{
string filename = Request.QueryString["filename"].ToString();
string saveFilePath = ConfigurationManager.AppSettings["CPSBImageFolder"].ToString();
//string saveFilePath = Server.MapPath("~/images");
saveFilePath = saveFilePath + filename;
Stream objStream = Request.InputStream;
StreamReader objStreamReader = new StreamReader(objStream);
Image image = Image.FromStream(objStreamReader.BaseStream, true);
ImageCodecInfo[] info = ImageCodecInfo.GetImageEncoders();
EncoderParameters param = new EncoderParameters(1);
param.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
image.Save(saveFilePath, info[1], param);
Response.Write("true");
}
不确定,但希望这会给你一个线索。
答案 1 :(得分:0)
验证您用于上传图像的变量(NSData)是否为空&amp;您的dot net服务器正在接收请求。