似乎我已经用我的代码解决了一系列问题中的第一个问题。我正在谈论的问题是这个问题:First Question。正如您所看到的,给定的答案仅与Objective-c代码有关。这似乎现在正常工作。
问题似乎是php代码找不到文件,因为$HTTP_POST_FILES['mainfile']['name']
返回null。我不确定问题是否在php代码或objective-c代码中。两者都在下面:
Objective-C代码
NSString *theUrl = @"MyServerURL";//Sorry not showing this:)
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:theUrl]];
[request setFile:[soundFileURL path] forKey:@"mainfile"];
[request startSynchronous];
PHP代码
$SafeFile = $HTTP_POST_FILES['mainfile']['name'];
$uploaddir = "uploads/";
$path = $uploaddir.$SafeFile;
$mainfile = $HTTP_POST_FILES['mainfile'];
$toWrite .= "\nThe path to which the file should be saved = " . $path . "\n";
if($mainfile != null){ //AS LONG AS A FILE WAS SELECTED...
$toWrite .= "The file is NOT NONE!\n";
if(copy($HTTP_POST_FILES['mainfile']['tmp_name'], $path)){ //IF IT HAS BEEN COPIED...
$toWrite .= "The file was succesfully saved to the server! \n";
}
}
此$toWrite
变量将写入txt文件。在此文件中,我可以看到在$toWrite
$SafeFile
{{1}}似乎是空的。这导致我认为文件无法访问或根本无法发送..
如果有人能帮我解决这个问题,我会非常感激!
答案 0 :(得分:2)
['name']
可以为空。上传的文件不需要filename=
值。无论如何,你都不应该使用未经过滤的,因为这为路径遍历漏洞打开了大门。
您的第二个问题可能是使用$HTTP_POST_FILES
,这在PHP4中有效。现在这个数组被称为$_FILES
。要查看您的上传是否成功以及存在哪些描述性字段,请先尝试使用print_r($_FILES);
进行测试。