move_uploaded_file: такого файла нет, когда используется другой каталог

Я использую это ответ, где они используют:

move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);

который работает как шарм, если я создаю каталог «uploads» внутри каталога «php», который выполняет этот код.

Если я попытаюсь сделать это:

move_uploaded_file($_FILES['file']['tmp_name'], '../img/' . $_FILES['file']['name']);

Я получаю это предупреждение:

введите описание изображения здесь

Что мне здесь не хватает? Я тоже пробовал с абсолютным путем!

Дерево каталогов:

scouter
-img
-php
-uplodas
-upload.php

В каталоге ‘img’, похоже, есть необходимые параметры прав доступа.


EDIT_0:

Если я помещу файл в uploads реж, а затем использовать rename() это поместит файл в img Дир … Не могу понять, что происходит!


EDIT_1:

HTML:

<input id="input_pic" type='file' name='userFile'/>
<div>
<img class="profile_pic" src="img/newname.jpg" alt="player_img" />
</div>

JS:

var file_data = $('#input_pic').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
alert(form_data);
$.ajax({
url: 'php/upload.php',
dataType: 'text',
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(php_script_response){
alert(php_script_response);
}
});

EDIT_2:

Ответ сервера, от ответа swidmann:

введите описание изображения здесь

0

Решение

Вы используете другое имя в своем HTML, я почему-то сомневаюсь, что это работало раньше, ваш HTML:

<input id="input_pic" type='file' name='userFile'/>

Из-за php это должно быть:

<input id="input_pic" type='file' name='file'/>

или ваш PHP должен использовать:

$_FILES['userFile']['tmp_name']

Я думаю, что ваша проблема, возможно, в размере загрузки, попробуйте это для отладки:

    var_dump( $_FILES );
$upload = move_uploaded_file( $_FILES['file']['tmp_name'], dirname( dirname( __FILE__ ) ).'/img/'. $_FILES['file']['name'] );
var_dump( $upload );
var_dump( ini_get("upload_max_filesize") );// what is allowed and how big is your picture?
var_dump( $_FILES['file']['size']  );// if this is 0, maybe your allowed upload size is to low

Кстати, я попробовал это, и это сработало:

dirname( dirname( __FILE__ ) ).'/img/'

Чтобы изменить допустимый размер загрузки, вы должны изменить следующие параметры:
Задавать upload_max_filesize а также post_max_size в вашем php.ini.

; Maximum allowed size for uploaded files.
upload_max_filesize = 40M

; Must be greater than or equal to upload_max_filesize
post_max_size = 40M

Если все в порядке, попробуйте абсолютный путь:

move_uploaded_file( $_FILES['file']['tmp_name'], $_SERVER["DOCUMENT_ROOT"]."/test/scouter/img/".$_FILES['file']['name'] );
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]