tôi sử dụng một PHP trang để gửi một tập tin vào và có PHP xử lý các tải lên ....
Mã này được sử dụng để tải lên một bức ảnh, nhưng nó có thể được điều chỉnh để làm việc với bất kỳ tập tin.
PHP Code:
<?php
$uploaddir = 'photos/';
$file = basename($_FILES['userfile']['name']);
$uploadfile = $uploaddir . $file;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "OK";
} else {
echo "ERROR";
}
?>
iPhone Code:
- (BOOL)uploadImage:(NSData *)imageData filename:(NSString *)filename{
NSString *urlString = @"http://www.yourdomainName.com/yourPHPPage.php";
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@\"\r\n",filename]] 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]];
[request setHTTPBody:body];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding] autorelease];
return ([returnString isEqualToString:@"OK"]);
}
Phương pháp Call:
[self uploadImage:UIImageJPEGRepresentation(imageView.image, 1.0) filename:imageName];
Tôi đã cố gắng để thực hiện mã của bạn, nhưng quá trình này luôn trả về một ERROR . Tôi không hoàn toàn hiểu được khối mã, vì vậy nó có thể chỉ đơn giản là cách dữ liệu đang được triển khai không thích hợp cho NSData mà tôi đang cố gắng gửi đến tệp php. Những gì tôi có là một đối tượng NSData có chứa các kết quả của một NSKeyedArchiver của một NSMutableArray có chứa một mảng các đối tượng tùy chỉnh (trong hồ sơ cơ sở dữ liệu trường hợp của tôi.) Bạn có thể chỉ cho tôi một tài nguyên tốt để hiểu khối mã và/hoặc đưa ra đề xuất về cách tinh chỉnh mã này cho mục đích của tôi? –
Sửa chữa: có một lỗi đánh máy. Mã trả về OK nhưng tệp không được lưu trong thư mục được chỉ định. –
Sự cố được giải quyết. Vui lòng bỏ qua yêu cầu trước đó. Cảm ơn! –