2016-11-14 1 views
0

Я использую Dropzone JS и из моего интерфейса (localhost: 9000), я вызываю upload.php, где я получаю изображения, а затем загружаю их на сервер (localhost: 80) в папке. вот мой HTML:Dropzone JS не удалось загрузить файл

<form action="localhost:80/ProgettoTimelinegit/api/upload.php" class="dropzone" id="my-dropzone" enctype="multipart/form-data"> 

</form> 

мой JavaScript:

Dropzone.autoDiscover = false; 
$("#my-dropzone").options = { 
    maxFilesize: 4, // MB 
    url:"http://localhost:80/ProgettoTimelinegit/api/upload.php", 
    addRemoveLinks : true, 
    uploadMultiple:true, 
    paramName:"file", 
    parallelUploads: 2, 
    maxFiles: 10, 
    autoProcessQueue: true, 
    headers: { 
     // remove Cache-Control and X-Requested-With 
     // to be sent along with the request 
     'Cache-Control': null, 
     'X-Requested-With': null 
    } 
}; 

и upload.php

$ds = DIRECTORY_SEPARATOR; //1 
$storeFolder = '/xampp/htdocs/images/'; //2 

if(!empty($_FILES)) { 
    // START // CREATE DESTINATION FOLDER 
    define('DESTINATION_FOLDER','../api/upload/'); 

    if ([email protected]_exists(DESTINATION_FOLDER)) { 
     if (!mkdir(DESTINATION_FOLDER, 0777, true)) { 
      $errors[] = "Destination folder does not exist or no permissions to see it."; 
     } 

     // END // CREATE DESTINATION FOLDER 
     $temp = $_FILES['file[]']['tmp_name']; 
     $dir_seperator = "fold/"; 

     //$destination_path = dirname(__FILE__).$dir_seperator.$folder.$dir_seperator; 
     $destination_path = DESTINATION_FOLDER.$dir_seperator; 
     $target_path = $destination_path.(rand(10000, 99999)."_".$_FILES['file']['name']); 
     move_uploaded_file($temp, $target_path); 
    } 
} 

Если я загрузить изображение в консоли (для каждого браузера) it

POST localhost:80/ProgettoTimelinegit/api/upload.php net::ERR_UNKNOWN_URL_SCHEME 

То, что я хочу сделать, это загрузить изображение в локальном хосте: 80/progettoTimelinegit/API/загрузки/

+0

Я использовал учебник с https: // WWW .startutorial.com/статьи/просмотр/как к Построй-файлов для загрузки форм-использования-dropzonejs-и-PHP – Fedeco

ответ

0

Ваш upload.php -file уже в api -folder, просто измените эту строку:

define('DESTINATION_FOLDER','../api/upload/');

к:

define('DESTINATION_FOLDER','upload/');

И он должен работать. У вас довольно много странных переменных, неиспользуемых переменных и т. Д., Поэтому могут быть и другие ошибки.

0

мне удалось заставить его работать, это стоило мне 4 дня работы, но теперь он работает: вы должны быть осторожны в некоторой части кода:

Html

Do not add enctype="multipart/form-data" or if you do remember to add rewrite rule 

"многокомпонентные/форма-данные" сделать Dropzone АВТОМАТИЧЕСКИ набор параметров запроса

виртуального хоста или .ini/.htaccess с Xampp/wampp/бродяга

VirtualHost *:80> 
    DocumentRoot "#folderOfyourWebsite" 
    ServerName yoursite.name 
    <Directory "#path To The HTML of Your Index Page"> 
     Options Indexes FollowSymLinks MultiViews ExecCGI 
     AllowOverride Authconfig FileInfo 
     Require all granted 
     </Directory> 
     Header set Access-Control-Allow-Origin "*"  
     Header set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT" 
     Header set Access-Control-Max-Age "1000" 
     Header set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token" 
     RewriteEngine On 
     RewriteCond %{REQUEST_METHOD} OPTIONS 
     RewriteRule ^(.*)$ $1 [R=200,L] 
    </VirtualHost> 

В переписывания двигателя мы говорим ему: хорошо, если вы получаете запрос на опции, переписать его с 200 (преуспевающим пост)

Так ваш список TO-DO может быть резюмировал с этим:

  1. проверить HTML Dropzone формы, если у вас есть ENCTYPE вам придется написать переписывание правила в вашем или ОМТЕ виртуального хоста ccess
  2. Вы написали Правило перезаписи чтобы сделать Cors Successfull?
  3. Убедитесь, что путь есть все разрешения и папки вашей загрузки существуют

  4. Проверьте ваши статические пути, где вы делаете запрос HTTP

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