2017-02-02 2 views
0

Я стараюсь использовать свои собственные каталоги для того, чтобы загрузить файлы в них, но ошибка происходит, когда я загружаю мою страницу «upload_test.php»JQuery загрузки файлов каталоги пользователей

userPath is not defined 

Я пытался много решений в течение 2-х дней, но никто не работал :(

Вот мой код этой страницы

<form id="fileupload" action="UploadHandler.php?userPath=<?php echo $MYDIR;?>" method="POST" enctype="multipart/form-data"> 

Вот мой код в main.js

$('#fileupload').fileupload({ 
    // Uncomment the following to send cross-domain cookies: 
    //xhrFields: {withCredentials: true}, 
    url: 'file_upload/server/php/index.php?userPath='+userPath, 
}); 

и index.php

error_reporting(E_ALL | E_STRICT); 

require('UploadHandler.php'); 

class CustomUploadHandler extends UploadHandler { 

protected function get_user_id() { 
    return $_REQUEST['userPath']; 
} 

protected function set_additional_file_properties($file) { 
    $file->deleteUrl = $this->options['script_url'] 
    .$this->get_query_separator($this->options['script_url']) 
    .$this->get_singular_param_name() 
    .'='.rawurlencode($file->name) 
    .'&userPath='.$_REQUEST['userPath'] 
    ; 
    $file->deleteType = $this->options['delete_type']; 
    if ($file->deleteType !== 'DELETE') { 
    $file->deleteUrl .= '&_method=DELETE'; 
    } 
    if ($this->options['access_control_allow_credentials']) { 
    $file->deleteWithCredentials = true; 
    } 
} 

} 

$upload_handler = new CustomUploadHandler(array(
'user_dirs' => true, 
)); 

ответ

0

Я хотел бы внести изменения в функцию get_user_id() следующим образом:

protected function get_user_id() { 
    return array_key_exists('userPath', $_REQUEST) ? $_REQUEST['userPath'] : ''; 
} 

Вы получаете сообщение УВЕДОМЛЕНИЕ от интерпретатора PHP, потому что это не гарантирует, что ключ UserPath всегда будет существовать.

Каждый раз, когда вы взаимодействуете с массивами, например. массив $ _REQUEST, вам нужно подготовить свое приложение для рассмотрения дела, что конкретного ключа не существует, иначе вы получите сообщение NOTICE, подобное тому, которое вы получили выше.

+0

Спасибо за ваш ответ. Действительно, он работает лучше! Однако загруженные файлы не сохраняются в моей пользовательской папке и видны только файлы, находящиеся непосредственно под папкой файлов. Я думаю, что UploadHandler игнорирует мою собственную папку. –

+0

Можете ли вы проверить следующее: - Имеет ли папка правильные разрешения на доступ к файлам? - Существует ли папка, где вы хотите поместить файлы? - У вас есть право создавать новые папки? – SaWo

+0

Все хорошо с этой стороны. Моя папка создана, и разрешения в порядке. Я попытался изменить это в main.js, чтобы проверить: url: 'file_upload/server/php/index.php? UserPath = MYDIR' и он работает. Но я хотел бы использовать параметр (конечно!) –

Смежные вопросы