嘿,任何人都可以发布示例代码,演示如何在本地Web服务上发布图像(jpeg,png)。
赛义德
答案 0 :(得分:4)
以下是代码段 -
- (void)useImage:(UIImage*)theImage
{
/*
turning the image into a NSData object
getting the image back out of the UIImageView
setting the quality to 90
*/
NSData *imageData = UIImageJPEGRepresentation(theImage, 90);
// setting up the URL to post to
NSString *urlString=[SiteUrl stringByAppendingString:@"iphone_upload_photo.php?type=colleague&token="];
urlString=[urlString stringByAppendingString:PublicToken];
// 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
*/
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=\"ipodfile.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];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
}
编辑:解释代码 -
我们在这里做的是,我们只是像在HTML页面中那样向服务器端页面提交图像假设我们有一个像这样的html页面 -
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
我们可以在这里用PHP代码接收这个文件 -
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['userfile']['name']);
// $_FILES['userfile']['name'] will be "ipodfile.jpg"
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['userfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
所以我们在目标代码中正在做的是我们只是创建一个POST请求并为我们发送文件的post post请求设置http头,文件域名是“userfile”,确切的文件名是“ipodfile” .JPG“
你可以按原样使用php代码来测试这个东西。
希望它能清除这种混乱。
答案 1 :(得分:0)
首先google hit可能对您有所帮助。