羊羊羊羊 2013-07-18 02:14 采纳率: 0%
浏览 1540

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);
  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-06 13:53
    关注

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


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

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

报告相同问题?

悬赏问题

  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥50 Oracle Kubernetes服务器集群主节点无法访问,工作节点可以访问
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
  • ¥15 gsoap生成onvif框架
  • ¥15 有关sql server business intellige安装,包括SSDT、SSMS。
  • ¥15 stm32的can接口不能收发数据
  • ¥15 目标检测算法移植到arm开发板
  • ¥15 利用JD51设计温度报警系统