Как я могу получить детали загруженного файла из uploadify после завершения - PullRequest
2 голосов
/ 08 декабря 2010

Как получить подробности о загруженном файле из uploadify после завершения процесса загрузки.

Я хочу выполнить процесс в загруженном файле.Но когда я использую uploadify, он просто загружает файл в папку через файл uploadify.php, который я настроил.Я хочу, чтобы этот процесс загрузки перенаправлял на страницу после завершения с указанием сведений о файле, таких как имя файла и целевое местоположение, где я продолжу вторую операцию над загруженным файлом

Обновления

Это то, что мой код на данный момент

<style type="text/css">
body {
    font: 0.8em/1.6em Arial, Helvetica, sans-serif;
}
fieldset {
    width: 500px;
}

#sample {
    display:table;
}
#sampleFile {
    float: left;
    display:table-cell;
    margin-right: 15px;
}
#download {
    margin-top: 15px;
    display: table;
}
.dlImage {
    display: table-cell;
    float: left;
    margin-right: 10px;
}
.dlText {
    float: left;
    display: table-cell;
}
.fileDetails {
    color: red;
}
.releaseDate{
    margin-top: -3px;
    color: gray;
}
</style>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Uploadify scriptData Sample</title>

<link rel="stylesheet" href="uploadify/uploadify.css" type="text/css" />

<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery.uploadify.js"></script>

<script type="text/javascript">

$(document).ready(function() {
    $("#fileUpload").fileUpload({
        'uploader': 'uploadify/uploader.swf',
        'cancelImg': 'uploadify/cancel.png',
        'script': 'uploadify/upload.php',
        'folder': 'files',
        'multi': false,
        'displayData': 'speed',
        'onComplete'  : function(event, queueID, fileObj, reponse, data) {    
            location.href="complete.php"; 
        }
    });


});

</script>
</head>

<body>






<div id="sample">
<div id="sampleFile">

 <fieldset style="border: 1px solid #CDCDCD; padding: 8px; padding-bottom:0px; margin: 8px 0">
        <legend><strong>Sélectionner l'image à imprimer :</strong></legend>


        <div id="fileUpload">You have a problem with your javascript</div>
        <a href="javascript:$('#fileUpload').fileUploadStart()">Start Upload</a>        <p></p>
 </fieldset>
</div>
</body>
</html>

на второй странице Я хочу повторить имя файла, который загружен у меня там на второй странице complete.php

<?php
print_r($_FILES);

echo $_FILES['type'];
echo $_FILES['tmp_name'];
echo $_FILES['name'];
echo $_FILES['size'];

?>

Ответы [ 2 ]

5 голосов
/ 08 декабря 2010

Знаете ли вы, что вы можете получить filename, filpath внутри события onComplete, например: -

onComplete: function(event, queueID, fileObj, reponse, data) 
{
    alert fileObj.name; //The name of the uploaded file
    alert fileObj.filePath; //The path on the server to the uploaded file

    location.href= "complete.php?filename="+fileObj.name+"&filepath="+fileObj.filePath; //Here you can do a javascript redirect
}

Дополнительную информацию смотрите в документации http://www.uploadify.com/documentation/events/oncomplete-2/

Вы ищете эти значения? Если нет, дайте мне знать

Обновления

В соответствии с вашими обновлениями у вас есть 2 варианта.

Либо выполнить «некоторый процесс» после загрузки файла в uploadify.php. Вы можете увидеть файл uploadify.php, который поставляется с плагином uploadify. Там у вас есть массив $_FILES['Filedata'], содержащий всю информацию о файле. Вы можете сами выполнить постобработку здесь (лучше вызывая функцию, а не писать много кода в основном коде uploadify)

в uploadify.php
$ _FILES ['Filedata'] ['name'] // имя файла

Или, как я уже сказал, получить имя файла и путь внутри события onComplete. Затем передайте эти параметры следующим образом: -

 location.href= "complete.php?filename="+fileObj.name+"&filepath="+fileObj.filePath;

Я думаю, что это лучше. Вместо этого вы можете отправить ajax-запрос, чтобы выполнить весь процесс (загрузка файла + ваш «некоторый процесс») без повторной загрузки страницы. Напишите запрос $. Post () внутри события onComplete с этими параметрами и отправьте в "complete.php"

Получение параметров внутри onComplete, которые по умолчанию недоступны

Вы должны использовать параметр response, доступный внутри onComplete Я работал над загрузкой версии 2.1.0, поэтому мое решение наверняка будет работать на этой версии. Если вам нужен только один параметр, вы можете повторить его в конце uploadify.php Я сделал следующее: -

По моему uploadify.php изменилось (это было в оригинальной uploadify.php): -

move_uploaded_file($tempFile,$targetFile);
echo "1";

к этому: -

move_uploaded_file($tempFile,$targetFile);
echo $tempFile;

и затем внутри события onComplete взорвался -

var tmpName = reponse;

Если, однако, вы хотите получить более одного параметра внутри onComplete, это прием, который я могу дать (это не очень хороший подход, но я не смог вернуть несколько параметров другим способом - я пытался возвращение массива json и т. д.): -

move_uploaded_file($tempFile,$targetFile);
echo $param1.'%%__%%'.$param2;

и затем внутри события onComplete произошел взрыв -

var paramsArray = explode('%%__%%',reponse);
param1 = paramsArray[0]; 
param2 = paramsArray[1]; 
0 голосов
/ 08 декабря 2010

Вы можете получить все детали загруженного файла, повторив строку ниже;

print_r($_FIELS);

ИЛИ вы можете echo все поля загруженных файлов.

echo $_FIELS['type'];
echo $_FIELS['tmp_name'];
echo $_FIELS['name'];
echo $_FIELS['size'];

Я прав, если понял вас, что вы хотите сказать. но, пожалуйста, оставьте комментарий, если вы ищете что-то еще.

Спасибо.

...