У меня очень странная проблема с моим PHP-скриптом.
Я загружаю пару файлов, и PHP помещает их в одну папку.
У меня проблемы с отправкой случайных файлов и отправкой случайных файлов. Поэтому я отладил его и получил очень странный результат из массива $ _FILES [].
Я пробовал это с 3 файлами.
$_FILES["addFile"]["name"]
Содержит имена 3 файлов.
Вы ожидаете, что $_FILES["addFile"]["tmp_name"]
будет содержать 3 временных имени, которые PHP использует для копирования файлов, но это не так. Он содержит только одно имя. Другие 2 - пустые строки, которые выдают ошибку при загрузке (которую я подавляю из-за отображения)
Это очень странно. Я перепробовал несколько ситуаций, и это просто продолжает происходить.
Это должно быть что-то в моих настройках или даже мой код.
Вот мой код:
$i = 0;
if (!empty($_FILES['addFile'])) {
foreach($_FILES['addFile'] as $addFile) {
$fileToCopy = $_FILES["addFile"]["tmp_name"][$i];
$fileName = $_FILES["addFile"]["name"][$i];
$i++;
if(!empty($fileToCopy)){
$copyTo = $baseDir."/".$fileName;
@copy($fileToCopy, $copyTo) or die("cannot copy ".$fileToCopy." to ".$copyTo);
}
}
exit(0);
}
Поскольку tmp_name пусто, значение if будет false, поэтому оно пропустит функцию die ().
Кто-нибудь знает, что может быть причиной этого?
дополнительная информация: Я использую Windows XP, работаю с сервером WAMP. Никогда не было этой проблемы раньше, и я могу получить доступ ко всем картам, с которых я пытался загрузить. Я думаю, что настройки безопасности Windows не могут быть проблемой.