【问题标题】:iOS does not upload a music file to my serveriOS 无法将音乐文件上传到我的服务器
【发布时间】:2011-12-19 11:11:49
【问题描述】:

我正在尝试将文件从我的 iOS 设备上传到我的 IIS 网络服务器(Windows Server Web 2008),但由于某种原因,如果添加的文件大于某个大小(大约 10MB),它不会收到请求)。

我就这件事提出了更多问题,并从中找到了很多答案。我仍然有更大的文件没有被发送的问题。以前的上限是 2MB,现在大约是 10MB 左右。 php 中可能与此有关的所有设置都设置为 500MB 或 6000 秒超时。 IIS 的 maxRequestBuffer 也已设置为 500MB,应该不是问题。

看看我已经改变了什么,我认为问题在于应用程序端根本没有发送它。以前请求将由服务器发送和接收,代码会被触发,但文件会因为当时太大而被忽略。但是现在当我有一个大文件时,将不会收到请求。

我的 Objective-c 代码是这样的:

NSString *theUrl = @"myserverurl";
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:theUrl]];

[request setNumberOfTimesToRetryOnTimeout:2];
[request setShouldContinueWhenAppEntersBackground:YES];

NSTimeInterval timeOutSecs = 60000;
[request setTimeOutSeconds:timeOutSecs];

//[request setUploadProgressDelegate:(id)];

[request setFile:[soundFileURL path] forKey:@"mainfile"];
[request startSynchronous];

如果有人能告诉我这里出了什么问题,那将对我有很大帮助!我找不到任何允许发送更大文件的方法,所以任何帮助都会很棒! :)

提前致谢!!

编辑

经过一些测试,似乎 11.1MB(5 分 48 秒的声音)是最大的。大于此值将导致上传失败。

【问题讨论】:

    标签: php objective-c iis


    【解决方案1】:

    要检查的两个主要方面:

    1. 在 Web 服务器上,检查日志。
    2. 在客户端,我从来没有使用过ASI同步,但是如果你切换到异步,你可以实现-requestFailed:委托方法并在调试器中分析那个错误对象。 (见how-to

    还可以查看 HTTP 请求/响应标头,看看是否有任何有趣的东西出现。如果你愿意花 15 美元,HTTP Scoop 是一个有用的工具。 (我不隶属于 HTTP Scoop 的作者。)

    还要检查客户端和服务器之间的任何防火墙、过滤器、防病毒软件等。

    【讨论】:

    • 首先我没有从服务器得到任何东西,所以我无法检查响应的标题。而且我不认为问题出在任何类型的防火墙上,因为端口 80 是完全开放的,它确实适用于较小的文件。最后我找不到日志,所以如果你能告诉我找到这些日志的默认位置在哪里太棒了!
    • 我检查过,应用程序返回 null 作为错误。所以我猜由于某种原因,php代码出了点问题。我想知道如何/在哪里检查服务器日志。
    【解决方案2】:

    在 IIS 中查找日志 打开 IIS 管理器 单击包含您的站点的网站(不是虚拟目录)。 正如您在 Windows 2008 上一样,您将拥有 IIS 7.0 或 7.5,因此您应该在 IIS 组下看到“日志记录”选项 在日志记录下,有一个“目录”选项,它是日志的路径

    如果日志没有为您提供足够的信息,请选择其他类型的日志或增加输出的字段数。 您可能需要阅读帮助以了解不同字段的说明。

    【讨论】:

      猜你喜欢
      • 2011-10-02
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-04
      • 2013-07-09
      • 2018-06-07
      • 1970-01-01
      相关资源
      最近更新 更多