Загрузить FOLDER

Я использую Uploadify для загрузки файлов и использования рамки Codeigniter.

Вот мой код добавления:

$("#change_profile_icon").uploadify({ 'uploader' : '/project/style/scripts/crop/uploadify/uploadify.swf', 'script' : 'http://localhost/project/pages/profile_icon', 'cancelImg' : '/project/style/scripts/crop/uploadify/cancel.png', 'buttonText' :'Upload image', 'width' : '110', 'height' : '30', 'queueID' : 'fileQueue', 'auto' : true, 'scriptData' :{username :"<?php echo $this->session->userdata('username');?>",folder:"honda"}, 'queueSizeLimit' : 1, 'multi' : false, 'fileDesc' : 'jpg', 'fileExt' : '*.jpg;*.png', 'sizeLimit' : '819200',//max size bytes - 800kb 'onComplete' : function(event,queueID,fileObj,response,data) { alert("Completed"); var dataresponse = eval('(' + response + ')'); //$('#uploadifyUploader').remove(); var filenametmp = "http://localhost"+(dataresponse.file).substring(0,(dataresponse.file).lastIndexOf("?")); var current_page = $('#page-list').val(); }, 'onSelect' : function (){ var folder = $('#page-list option:selected').text(); //returns HONDA which is correct $('#change_profile_icon').uploadifySettings('folder',folder); } , 'onError' : function(){ alert('error'); } }); 

Вот моя часть PHP [значение скрипта в Uploadify]

 function profile_icon() { if (!empty($_FILES)) { $tempFile = $_FILES['Filedata']['tmp_name']; $targetPath = $_REQUEST['folder'] . '/'; $targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name']; // $fileTypes = str_replace('*.','',$_REQUEST['fileext']); // $fileTypes = str_replace(';','|',$fileTypes); // $typesArray = split('\|',$fileTypes); // $fileParts = pathinfo($_FILES['Filedata']['name']); // if (in_array($fileParts['extension'],$typesArray)) { // Uncomment the following line if you want to make the directory if it doesn't exist $targetPath = 'uploads/' .$_REQUEST['folder']. '/'; $targetFile = $targetPath.$_FILES['Filedata']['name']; if (!file_exists($targetPath)) { mkdir(str_replace('//','/',$targetPath), 0755, true); } move_uploaded_file($tempFile,$targetFile); echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile); // } else { // echo 'Invalid file type.'; // } } 

Проблема:

 $targetPath = 'uploads/' .$_REQUEST['folder']. '/'; $targetFile = $targetPath.$_FILES['Filedata']['name']; if (!file_exists($targetPath)) { mkdir(str_replace('//','/',$targetPath), 0755, true); } 

Проверьте приведенные выше коды, взятые из части PHP. Я думаю, что $_REQUEST['folder'] предоставит имя папки, указанное в скрипте Uploadify. Значение folder – это Honda Но это дает что-то другое.

Я загрузил файл, и этот скрипт загрузил его в

 C:\wamp\www\project\uploads\project\home\editpage\honda\honda 

На сервере wamp [я нахожусь в Localhost]

Но как это происходит? должен быть

  C:\wamp\www\project\uploads\honda 

Проверьте ниже …

  $targetPath = 'uploads/' .$_REQUEST['folder']. '/'; $targetFile = $targetPath.$_FILES['Filedata']['name']; 

Теперь targetPath должен быть targetPath uploads/honda/ и targetFile должен быть теперь uploads/honda/fileName.ext

Я не знаю, что я делаю неправильно, и где это …

Пожалуйста, помогите мне.

Спасибо .

EDIT : URL-СТРУКТУРА ТЕКУЩЕЙ СТРАНИЦЫ: http://localhost/Project/home/editpage/honda/ Где home – это контроллер, а editpage – это функция, а honda – аргумент. [Codeigniter framework]


 SOLVED 

Я решил проблему, это ошибка в uploadify: переменная папки uploadify не прямолинейна, поэтому перед этим нужно добавить slash .

так что это будет var folder = "/"+ "FolderName"; Проблема заключается в том, чтобы вернуть данные на сервер, если вы используете только имя папки.

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

так что это будет var folder = "/" + "FolderName"; Проблема заключается в том, чтобы вернуть данные на сервер, если вы используете только имя папки.

Я думаю, вы получите большую помощь, чтобы поместить свой вывод в файл, 🙂

 $myFile = "[full-folder-path]testFile.txt"; $fh = fopen($myFile, 'a') or die("can't open file"); $stringData = $_FILES['Filedata']['name'] ." | ". print_r( $_REQUEST, true ) ."\n"; fwrite($fh, $stringData); fclose($fh); 

Но я думаю, если вы измените свою линию $ targetPath на эту

 $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/'; 

Помните, что ваша папка нуждается в чтении / wirte rulls, ее единственное, что я могу видеть, ее worng от вашего базового сценария к моему сценарию.

Просто укажите folder вы хотите загрузить в настройках, как

 <script type="text/javascript"> $(document).ready(function() { $('#file_upload').uploadify({ 'uploader' : '/uploadify/uploadify.swf', 'script' : '/uploadify/uploadify.php', 'cancelImg' : '/uploadify/cancel.png', 'folder' : '/uploads', 'auto' : true }); }); </script> 

Как и в приведенных выше настройках, вы пропустили опцию folder .