如何上传文件到服务器存储在我的文档文件夹中的ios?

我想上传我的应用程序文档文件夹中存储的文件(不同格式)。 我列出了所有的文件在一个tableview上,select一行,我试图上传该行中的文件。 这是我的代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSString *urlString; if (indexPath.section == 0) { fileUrlToUpload = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:documents[indexPath.row] ofType:nil]]; } else { fileUrlToUpload = [self.documentURLs objectAtIndex:indexPath.row]; } [self setupDocumentControllerWithURL:fileUrlToUpload]; urlString = [[fileUrlToUpload path] lastPathComponent]; printf("\n the string is :%s",[urlString UTF8String]); [self publishToServer:urlString]; -(void)publishToServer:(NSString *)str { if([str length] > 0) { NSString *urlPath=@""; urlPath= str; NSString *urlString = @"http://162.108.0.8:8080/Path/upload_path.jsp?"; 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 *postBody = [NSMutableData data]; [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"path\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithString:urlPath] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@--",boundary] dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]]; [request setHTTPBody:postBody]; NSLog(@"request === %@",request); NSData *returnData =nil; returnData= [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; NSLog(@"returnData === %@",returnData); NSString * string=[[NSString alloc]initWithData:returnData encoding:NSUTF8StringEncoding]; } 

1)当我试图从模拟器发布的文件空值存储在服务器数据库,我收到“上传成功”作为响应。
2)当我试图从设备上发布的文件,我没有得到甚至在服务器的空值。

请帮帮我。

谢谢

不知道有关文件types,但我可以上传图片,顺便说一句,我已经尝试了所有可能的例子在这里,但没有工作(我有$ _FILES数组空),所以我不得不构build自己的基础上的例子,它的工作原理:

 - (void) uploadLog :(NSString *) filePath { NSData *data = [[NSData alloc] initWithContentsOfFile:filePath]; NSString *urlString =[NSString stringWithFormat:@"http://www.yoursite.com/accept.php"]; // to use please use your real website link. NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:[NSURL URLWithString:urlString]]; [request setHTTPMethod:@"POST"]; NSString *boundary = @"_187934598797439873422234"; NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; [request setValue: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"]; [request setValue:@"http://google.com" forHTTPHeaderField:@"Origin"]; NSMutableData *body = [NSMutableData data]; [body appendData:[[NSString stringWithFormat:@"Content-Length %d\r\n\r\n", [data length] ] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"picture\"; filename=\"%@.png\"\r\n", @"newfile"] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[NSData dataWithData:data]]; [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [request setHTTPBody:body]; [request addValue:[NSString stringWithFormat:@"%d", [body length]] forHTTPHeaderField:@"Content-Length"]; NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; NSLog(@"%@", returnString); } 

这里是PHP的一部分,为我工作(对不起,我不熟悉jsp):

 <?php $target_path = "./uploads/"; $target_path = $target_path . basename( $_FILES['picture']['name']); if(move_uploaded_file($_FILES['picture']['tmp_name'], $target_path)) { echo "The file ". basename( $_FILES['picture']['name'])." has been uploaded"; } else{ echo "There was an error uploading the file, please try again!"; } ?>