【问题标题】:How can I get the uploaded file details from uploadify after completion完成后如何从uploadify获取上传的文件详细信息
【发布时间】:2010-12-08 10:43:57
【问题描述】:

上传过程完成后,我应该如何从uploadify中检索上传的文件详细信息。

我想在上传的文件中做一个处理。 但是当我使用uploadify时,它只是通过我自定义的uploadify.php将文件上传到一个位置。 我希望这个uploadify过程在完成文件的详细信息后重定向到一个页面,例如文件名和目标位置,我将对上传的文件进行第二次操作

更新

这是我现在的代码

<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'];

?>

【问题讨论】:

    标签: php uploadify


    【解决方案1】:

    你知道你可以像这样在onComplete 事件中获取filenamefilpath:-

    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 请求来完成整个过程(文件上传 + 您的“某些过程”),而无需再次加载页面。 使用这些参数在onComplete 事件中编写$.post() 请求并发布到“complete.php”

    获取onComplete内默认不可用的参数

    您必须使用onComplete 中可用的response 参数 我在 uploadify 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]; 
    

    【讨论】:

    • 我想在我的第二页获取上传的文件名。我在我的问题中添加了更多内容,请检查。同样,我现在所做的需要上传的文件名在我的第二页中进行一些处理
    • 我已经更新了我的答案。你没有得到onComplete事件中的文件名和路径吗?
    • 如果我希望通过 post 方法将文件名和文件路径发送到 complete.php,请您在 oncomplete 事件中更新 post 过程的工作方式
    • 是的,现在我得到了文件名和文件路径。但是我是否从上传的文件中获取了发布的值,然后我可以在 complete.php 中完成所有过程,而不是在 upload.php 中进行通过在 complete.php 中调用 $_FILES['Filedata']['tmp_name'] 对吗??
    • 查看我的更新,对于uploadify高于2.1.0的版本,你可能需要做一些调整
    【解决方案2】:

    您可以通过回显下一行来获取上传文件的所有详细信息;

    print_r($_FIELS);
    

    或者你可以echo上传文件的所有字段。

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

    如果我理解你想说的话,我是对的。但如果您搜索其他内容,请发表评论。

    谢谢。

    【讨论】:

    • 你的意思是说我想在我被重定向的第二页中回显这些变量
    • 不,其实我只是告诉你,通过这种方式你可以获得上传文件的所有变量。 echo 只是一种方式,您可以通过它查看您的价值观是否错误或正确。
    • 否则你可以不使用ECHO获取所有变量。
    • 您可以在上传文件后重定向的页面中使用它。即:如果你想获取文件类型,那么你可以这样写 $filetype = $_FILES['filename']['type'];等等……
    • $_FIELS 应该是 $_FILES
    猜你喜欢
    • 2014-10-15
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    相关资源
    最近更新 更多