objective-c不能上传文件内容

要把本地文件上传到服务器,上传后的文件没有内容。并没报错信息什么的。

NSString *urlString = @"http://myserver.com/upload-c.php";
NSString *filename=@"xx.docx";

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"xx.docx"]];
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:data]];

[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];

NSLog(@"%@",returnString);

看起来你正在尝试使用NSURLConnection来上传文件到一个服务器,然后检查服务器返回的响应。


我注意到几个可能的问题:

  • 检查你是否正确地提供了文件名。确保文件名是正确的,并且没有任何空格。
  • 检查你是否提供了正确的URL。确保你的URL指向有效的服务器脚本,并且它能够正确处理上传的文件。
  • 确保你的服务器脚本正确地处理上传的文件。确保它能够正确读取文件内容,并将它写入到正确的位置。
  • 如果你收到了服务器的响应,请检查响应是否包含有关文件上传失败的任何信息。这可能会在响应的字符串中显示。
  • 最后,你可以使用NSLog函数来输出请求和响应的内容,以便更好地了解发生了什么。