Пользовательская кнопка выбора файлов не работает должным образом

Я реализую прекрасный загрузчик. Вот что я сделал:

1) Я добавил следующие классы html и js:

 <link rel="stylesheet" href="Content/fineuploader-3.4.1.css" /> 
<script type="text/javascript" src="Scripts/jquery.fineuploader-3.4.1.min.js"></script>

HTML

<input type="text" class="input-medium" placeholder="Document Type" data-bind="value: type"/>
                                   <div id="fine-uploader-basic" class="btn btn-success" data-bind="click:$root.uploadFile">
                                        <i class="icon-upload icon-white"></i> Click to upload
                                    </div>
                                    <div id="messages"></div>

JS-файл

uploadFile: function(data) { 
       var uploader = new qq.FineUploader({
        element: $('#fine-uploader')[0],
        debug: true,
        request: {
            endpoint: "php/fileupload.php"
        }
    });
    }

файл Fineupload.php:

<?php
$file = $_FILES['qqfile'];
$uploadDirectory = 'uploads';
$target = $uploadDirectory.DIRECTORY_SEPARATOR.$file['files.php'];
$result = null;
if (move_uploaded_file($file['tmp_name'], $target)){
    $result = array('success'=> true);
    $result['uploadName'] = $file['name'];
} else {
    $result = array('error'=> 'Upload failed');
}
header("Content-Type: text/plain");
echo json_encode($result);

?>

files.php (где хранятся файлы)

<?php 

// Include the uploader class
require_once 'php/fileupload.php';

$uploader = new qqFileUploader();

// Specify the list of valid extensions, ex. array("jpeg", "xml", "bmp")
$uploader->allowedExtensions = array();

// Specify max file size in bytes.
$uploader->sizeLimit = 10 * 1024 * 1024;

// Specify the input name set in the javascript.
$uploader->inputName = 'qqfile';

// If you want to use resume feature for uploader, specify the folder to save parts.
$uploader->chunksFolder = 'chunks';

// Call handleUpload() with the name of the folder, relative to PHP's getcwd()
$result = $uploader->handleUpload('uploads');

// To save the upload with a specified name, set the second parameter.
// $result = $uploader->handleUpload('uploads/', md5(mt_rand()).'_'.$uploader->getName());

// To return a name used for uploaded file you can use the following line.
$result['uploadName'] = $uploader->getUploadName();

header("Content-Type: text/plain");
echo json_encode($result);
?>

Проблемы:

Когда я нажимаю кнопку, она меняется на следующее: введите здесь описание изображения

Эта красная кнопка внутри зеленой должна быть отделена от зеленой кнопки.

И еще, не появляется всплывающее окно выбора файла. Оба файла PHP имеют разрешение 777.


person Stranger    schedule 07.04.2013    source источник


Ответы (1)


Ваш файл PHP не имеет отношения к этой конкретной проблеме. Если вы не хотите использовать стилизованную по умолчанию кнопку Fine Uploader «выбрать файлы», вы должны указать Fine Uploader на ваш пользовательский элемент «кнопка».

В вашем случае вам нужно будет добавить параметр button следующим образом:
button: document.getElementById('#fine-uploader-basic')

person Ray Nicholus    schedule 07.04.2013
comment
Когда вы говорите, что мой php не имеет значения, о каком файле php вы говорите? Кроме того, какая часть файла не имеет значения? - person Stranger; 08.04.2013
comment
Я имел в виду, что нет необходимости обсуждать файлы PHP, поскольку ваша проблема строго на стороне клиента. - person Ray Nicholus; 08.04.2013