Недавно столкнулся с выбором плагинов для загрузки файлов на сервер. Понравился
PekeUpload
После чего было решено его попробовать заюзать. Сейчас все подключил и пробую через апачевский домен из под убунту залить файл. Итог: файл не заливает и progressbar на 0%.
При настройке редактировал pekeUpload.js:
//...
var defaults = {
dragMode: false,
dragText: "Перетащите файл или кликните и выберите его вручную",
bootstrap: true,
btnText: "Загрузить изображение...",
allowedExtensions: "jpg|png|mp3",
invalidExtError: "Invalid File Type",
maxSize: 0,
sizeError: "Size of the file is greather than allowed",
showPreview: true,
showFilename: true,
showPercent: true,
showErrorAlerts: true,
errorOnResponse: "There has been an error uploading your file",
onSubmit: true,
url: "upload.php",
data: null,
limit: 1,
limitError: "Вы можете загрузить только одно изображение!",
onFileError: function(file, error) {},
onFileSuccess: function(file, data) {}
};
//...
Файл upload.php взял из "коробки" и ничего не менял, но все же вот:
<?php
/*
PekeUpload
Copyright (c) 2013 Pedro Molina
*/
// Define a destination
$targetFolder = 'uploads/'; // Relative to the root
if (!empty($_FILES)) {
$tempFile = $_FILES['file']['tmp_name'];
$targetPath = dirname(__FILE__) . '/' . $targetFolder;
$targetFile = rtrim($targetPath,'/') . '/' . $_FILES['file']['name'];
// Validate the file type
$fileTypes = array('jpg','jpeg','gif','png','mp3'); // File extensions
$fileParts = pathinfo($_FILES['file']['name']);
$response = array ();
if (in_array($fileParts['extension'],$fileTypes)) {
move_uploaded_file($tempFile,$targetFile);
$response['success'] = 1;
foreach ($_POST as $key => $value){
$response[$key] = $value;
}
echo json_encode($response);
} else {
$response['success'] = 0;
$response['error'] = 'Invalid file type.';
echo json_encode($response);
}
}
?>
В index.php:
...
<label class="control-label">Выберите изображение для товара</label>
<input id="file" type="file" class="file">
...
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/pekeUpload.js"></script>
<script>
$(document).ready(function() {
$("#file").pekeUpload({url: "upload.php", limit: 1});
});
</script>
...
Как решить проблему?