我将图像上传到我的服务器时遇到问题,我有我连接到服务器的代码,我尝试了它,如果它在本地工作,将它上传到我的服务器雷鸣那个错误
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UINavigationControllerDelegate,
UIImagePickerControllerDelegate, NSURLConnectionDelegate>{
IBOutlet UILabel *response;
NSMutableData *_responseData;
}
@property (strong, nonatomic) IBOutlet UIImageView* imageView;
- (IBAction) pickImage:(id)sender;
@end
ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
{
NSData *pngData;
NSData *syncResData;
NSMutableURLRequest *request;
UIActivityIndicatorView *indicator;
#define URL @"http://localhost/UploadImage/Upload_Image.php"
#define NO_CONNECTION @"No Connection"
#define NO_IMAGE @"NO IMAGE SELECTED"
}
- (void)viewDidLoad {
[super viewDidLoad];
pngData = nil;
[self initPB];
}
- (IBAction) pickImage:(id)sender{
UIImagePickerController *pickerController = [[UIImagePickerController alloc] init];
pickerController.delegate = self;
[self presentViewController:pickerController animated:YES completion:nil];
}
#pragma mark -
#pragma mark UIImagePickerControllerDelegate
- (void) imagePickerController:(UIImagePickerController *)picker
didFinishPickingImage:(UIImage *)image
editingInfo:(NSDictionary *)editingInfo
{
self.imageView.image = image;
pngData = UIImagePNGRepresentation(image);
[self dismissModalViewControllerAnimated:YES];
}
-(BOOL) setParams{
if(pngData != nil){
[indicator startAnimating];
request = [NSMutableURLRequest new];
request.timeoutInterval = 20.0;
[request setURL:[NSURL URLWithString:URL]];
[request setHTTPMethod:@"POST"];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
[request setValue:@"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" forHTTPHeaderField:@"Accept"];
[request setValue:@"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/536.26.14 (KHTML, like Gecko) Version/6.0.1 Safari/536.26.14" forHTTPHeaderField:@"User-Agent"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"uploaded_file\"; filename=\"%@.png\"\r\n", @"Uploaded_file"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:pngData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
[request addValue:[NSString stringWithFormat:@"%d", [body length]] forHTTPHeaderField:@"Content-Length"];
return TRUE;
}else{
response.text = NO_IMAGE;
return FALSE;
}
}
- (IBAction) uploadImageSync:(id)sender{
if( [self setParams]){
NSError *error = nil;
NSURLResponse *responseStr = nil;
syncResData = [NSURLConnection sendSynchronousRequest:request returningResponse:&responseStr error:&error];
NSString *returnString = [[NSString alloc] initWithData:syncResData encoding:NSUTF8StringEncoding];
NSLog(@"ERROR %@", error);
NSLog(@"RES %@", responseStr);
NSLog(@"%@", returnString);
if(error == nil){
response.text = returnString;
}
[indicator stopAnimating];
}
}
-(void) initPB{
indicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
indicator.frame = CGRectMake(([UIScreen mainScreen].bounds.size.width)/2, ([UIScreen mainScreen].bounds.size.height)/2 , 40.0, 40.0);
indicator.center = self.view.center;
[self.view addSubview:indicator];
[indicator bringSubviewToFront:self.view];
[UIApplication sharedApplication].networkActivityIndicatorVisible = TRUE;
}
#pragma mark NSURLConnection Delegate Methods
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
// A response has been received, this is where we initialize the instance var you created
// so that we can append data to it in the didReceiveData method
// Furthermore, this method is called each time there is a redirect so reinitializing it
// also serves to clear it
_responseData = [[NSMutableData alloc] init];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
// Append the new data to the instance variable you declared
[_responseData appendData:data];
}
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse*)cachedResponse {
// Return nil to indicate not necessary to store a cached response for this connection
return nil;
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
// The request is complete and data has been received
// You can parse the stuff in your instance variable now
response.text = [[NSString alloc] initWithData:_responseData encoding:NSUTF8StringEncoding];
NSLog(@"_responseData %@", response.text);
[indicator stopAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = FALSE;
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
// The request has failed for some reason!
// Check the error var
NSLog(@"didFailWithError %@", error);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end
通过本地服务器上的图像顺利使用此代码,我的代码php是:
<?php
$target_path1 = "fotosTaqueria/";
/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
$target_path1 = $target_path1 . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $target_path1){
echo "The file ". basename( $_FILES['uploaded_file']['name']).
" has been uploaded to ".$target_path1;;
} else{
echo "There was an error uploading the file, please try again!";
echo "filename: " . basename( $_FILES['uploaded_file']['name']);
echo "target_path: " .$target_path1;
}
?>
我将遇到服务器不允许我上传图片的问题 帮我看看我的错误,谢谢你的时间