Перетаскивание файла HTML 5 с помощью php - PullRequest
1 голос
/ 12 октября 2011

Хорошо, я немного толстый - думаю, я смотрю на pangratz / dnd-file-upload , а перетаскивание - это здорово, и т. Д. (Я не знаю кросс-браузер и т. Д., Но это не имеет значения) но я не могу создать правильный php-код для обработки фактической загрузки.

Вот базовый код js

$(document).ready(function(){

            $.fn.dropzone.uploadStarted = function(fileIndex, file){
                var infoDiv = $("<div></div>");
                infoDiv.attr("id", "dropzone-info" + fileIndex);
                infoDiv.html("upload started: " + file.fileName);

                var progressDiv = $("<div></div>");
                progressDiv.css({
                    'background-color': 'orange',
                    'height': '20px',
                    'width': '0%'
                });
                progressDiv.attr("id", "dropzone-speed" + fileIndex);

                var fileDiv = $("<div></div>");
                fileDiv.addClass("dropzone-info");
                fileDiv.css({
                    'border' : 'thin solid black',
                    'margin' : '5px'
                });
                fileDiv.append(infoDiv);                
                fileDiv.append(progressDiv);                

                $("#dropzone-info").after(fileDiv);
            };
            $.fn.dropzone.uploadFinished = function(fileIndex, file, duration){
                $("#dropzone-info" + fileIndex).html("upload finished: " + file.fileName + " ("+getReadableFileSizeString(file.fileSize)+") in " + (getReadableDurationString(duration)));
                $("#dropzone-speed" + fileIndex).css({
                    'width': '100%',
                    'background-color': 'green' 
                });
            };
            $.fn.dropzone.fileUploadProgressUpdated = function(fileIndex, file, newProgress){
                $("#dropzone-speed" + fileIndex).css("width", newProgress + "%");
            };
            $.fn.dropzone.fileUploadSpeedUpdated = function(fileIndex, file, KBperSecond){
                var dive = $("#dropzone-speed" + fileIndex);

                dive.html( getReadableSpeedString(KBperSecond) );
            };
            $.fn.dropzone.newFilesDropped = function(){
                $(".dropzone-info").remove();
            };
            $("#dropzone").dropzone({
                url : "upload.php",
                printLogs : true,
                uploadRateRefreshTime : 500,
                numConcurrentUploads : 2
            });

        });

Но я никак не могу заставить upload.php работать

  $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = '';
    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
move_uploaded_file($tempFile,$targetFile);
        echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);

Предложения и т. Д. Приветствуем все, что мне нужно сделать, это загрузить изображение на сервер и вменяемое в БД (неплохо сохранив ОДНАЖДЫ, я могу получить перетаскиваемое изображение для перемещения на сервер. О, я не хочу использовать стороннее приложение.

Заранее спасибо

1 Ответ

0 голосов
/ 12 октября 2011

Я пока не нахожу, как это сделать с вашей библиотекой drag & drop.Потому что я думаю, что запрос ajax не устанавливает $ _FILES.Я знаю, что это не полное решение, но если вам действительно нужен быстрый ответ, вот он:

jquery-filedrop

С помощью этой библиотеки вы можете отправлять настройки переменных POST'ParamName.

$('#dropzone').filedrop({
    url: 'upload.php',              // upload handler, handles each file separately
    paramname: 'Filedata',

при этом ваш php-код должен работать.Я уже использовал это, это довольно просто.надеюсь, это поможет.

...