如何在服务器上动态上传图片?

在我的应用程序中,我想将图像上传到服务器。

我能够在服务器上上传图像,但在filename =%@。jpg前面提到图像的名称。 图像保持不变

[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 

但我想用服务器上的图像名称将图像保存在服务器上…… plz帮助我。

以下是我的代码:

  -(IBAction)upload:(id)sender { //imageview is a UIImageView NSData *imageData = UIImageJPEGRepresentation(imageView.image, 100); // setting up the URL to post to NSString *urlString = @"http://url.com/upload/uploader.php?"; // setting up the request object now NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; [request setURL:[NSURL URLWithString:urlString]]; [request setHTTPMethod:@"POST"]; /* add some header info now we always need a boundary when we post a file also we need to set the content type You might want to generate a random boundary.. this is just the same as my output from wireshark on a valid html post */ NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"]; NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; /* now lets create the body of the post */ NSMutableData *body = [NSMutableData data]; [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[NSData dataWithData:imageData]]; [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; // setting the body of the post to the reqeust [request setHTTPBody:body]; // now lets make the connection to the web NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; ///self.returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; NSLog(@"%@",returnString); } 

更改

 [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 

  [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@.jpg\"\r\n",filename] dataUsingEncoding:NSUTF8StringEncoding]]; 

其中filename是带有所需文件名的NSString *变量

这一行[body appendData:[[NSString stringWithString:@“ Content-Disposition:form-data; name = \”userfile \“; filename = \”%@。jpg \“\ r \ n”] dataUsingEncoding:NSUTF8StringEncoding]] ;

内容类型:image / jpeg

而不是Content-Disposition:form-data

并学习如何使用内容类型