2016-03-22 4 views
0

У меня есть эта упрощенная ситуация:DropzoneJS как часть PHP формы

<form action='process.php' method='post'> 

<div class="dropzone no-margin"> 
    <div class="fallback"> 
     <input name="file" type="file" multiple/> 
    </div> 
</div> 

</form> 

$(".dropzone").dropzone({ 
url: "/test2.php", 
maxFilesize: 2, 
maxFiles: 5 
}); 

test2.php работает просто отлично, это загрузить файлы сброшены на DropZone сразу. но, проблема в том, что мне нужно передать эти имена файлов загруженных файлов в форму как скрытый ввод текста.

вот test2.php выглядит следующим образом:

<?php 
$target_dir = "user/product/"; 
$target_file = $target_dir . basename($_FILES["file"]["name"]); 
$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
// Check if image file is a actual image or fake image 
if(isset($_POST["submit"])) { 
    $check = getimagesize($_FILES["file"]["tmp_name"]); 
    if($check !== false) { 
     echo "File is an image - " . $check["mime"] . "."; 
     $uploadOk = 1; 
    } else { 
     echo "File is not an image."; 
     $uploadOk = 0; 
    } 
} 
// Check if file already exists 
if (file_exists($target_file)) { 
    echo "Sorry, file already exists."; 
    $uploadOk = 0; 
} 
// Check file size 
if ($_FILES["fileToUpload"]["size"] > 500000) { 
    echo "Sorry, your file is too large."; 
    $uploadOk = 0; 
} 
// Allow certain file formats 
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" 
&& $imageFileType != "gif") { 
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
    $uploadOk = 0; 
} 
// Check if $uploadOk is set to 0 by an error 
if ($uploadOk == 0) { 
    echo "Sorry, your file was not uploaded."; 
// if everything is ok, try to upload file 
} else { 
    if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { 
     echo "The file ". basename($_FILES["file"]["name"]). " has been uploaded."; 
    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 
} 
?> 

Я новичок в JavaScript или JQuery мире. Таким образом, мне действительно нужна ваша помощь, чтобы дать мне понять, как передать имена файлов в форму в виде скрытого ввода текста, чтобы впоследствии ее можно было записать в базу данных.

Большое вам спасибо, и я очень благодарен вам за помощь.

ответ

1

Попробуйте это:

есть метод в Dropzone т.е. отправка, который будет использовать для передачи данных, прежде чем файл sent.if несколько файлов будут загружены затем использовать sendingmultiple метода.

$(".dropzone").dropzone({ 
    url: "/test2.php", 
    maxFilesize: 2, 
    maxFiles: 5, 
    sending:function (data, xhr, formdata) { 
     console.log("data :",data); 
     //here you can get file name from data variable.you can add that to your form by following line. 
     formdata.append('hidden field name', 'file name'); 
     //you can add as much parameter you want to pass to your post data by formdata.append() function. That will add data to your form data.you can refer that value by using $_POST['hidden_field_name'] at PHP side. 
    } 
}); 

Пожалуйста, проверьте ссылку на детали:

http://www.dropzonejs.com/#events