下面是上传图像文件的片段.我只想使用NSURLSessionUploadTask,因为它提供了我想在我的应用中使用的后台上传功能.
我也不擅长服务器端代码.任何人都可以指导我做错了什么.
Nsstring* filePath = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"jpg"]; uint64_t bytesTotalForThisFile = [[[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:NULL] fileSize]; NSMutableuRLRequest *request = [NSMutableuRLRequest requestWithURL:uploadpath]; [request setHTTPMethod:@"POST"]; [request setValue:[Nsstring stringWithFormat:@"%llu",bytesTotalForThisFile] forHTTPHeaderField:@"Content-Length"]; [request setValue:@"application/octet-stream" forHTTPHeaderField:@"Content-Type"]; [request setTimeoutInterval:30]; Nsstring* filePath = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"jpg"]; NSURLSessionUploadTask *taskUpload= [self.uploadSession uploadTaskWithRequest:request fromFile:[[NSURL alloc] initFileURLWithPath:filePath]];
<?PHP $objFile = & $_FILES["file"]; $strPath = basename( $objFile["name"] ); if( move_uploaded_file( $objFile["tmp_name"],$strPath ) ) { print "The file " . $strPath . " has been uploaded."; } else { print "There was an error uploading the file,please try again!"; }
从服务器端我得到$_FILES的空数组
我将举一个代码示例.检查控制台是否出现任何错误.
// 1. config NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration]; // 2. if necessary set your Authorization HTTP (example api) // [config setHTTPAdditionalHeaders:@{@"<setYourKey>":<value>}]; // 3. Finally,you create the NSURLSession using the above configuration. NSURLSession *session = [NSURLSession sessionWithConfiguration:config]; // 4. Set your Request URL NSURL *url = <yourURL>; NSMutableuRLRequest *request = [[NSMutableuRLRequest alloc] initWithURL:url]; // 5. Set your HTTPMethod POST or PUT [request setHTTPMethod:@"PUT"]; // 6. Encapsulate your file (supposse an image) UIImage *image = [UIImage imageNamed:@"imageName"]; NSData *imageData = UIImageJPEGRepresentation(image,1.0); // 7. You Could try use uploadTaskWithRequest fromData NSURLSessionUploadTask *taskUpload = [session uploadTaskWithRequest:request fromData:imageData completionHandler:^(NSData *data,NSURLResponse *response,NSError *error) { NSHTTPURLResponse *httpResp = (NSHTTPURLResponse*) response; if (!error && httpResp.statusCode == 200) { // Uploaded } else { // alert for error saving / updating note NSLog(@"ERROR: %@ AND HTTPREST ERROR : %ld",error,(long)httpResp.statusCode); } }];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。