完成上传过程后,如何从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>
Run Code Online (Sandbox Code Playgroud)
在第二页上我想回复第二页complete.php中我上传的文件名
<?php
print_r($_FILES);
echo $_FILES['type'];
echo $_FILES['tmp_name'];
echo $_FILES['name'];
echo $_FILES['size'];
?>
Run Code Online (Sandbox Code Playgroud)
你知不知道,你可以得到的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
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请查看文档http://www.uploadify.com/documentation/events/oncomplete-2/
你在寻找这些价值观吗?如果没有让我知道
更新
根据您的问题更新,您有2个选项.
要么在uploadify.php中上传文件后执行"some process".您可以看到uploadify.phpuploadify插件附带的文件.你有$_FILES['Filedata']包含所有文件信息的数组.你可以在这里进行后期处理(通过更好地调用函数而不是在uploadify的核心代码中编写大量代码)
在uploadify.php
$ _FILES ['Filedata'] ['name'] //文件名中
或者就像我说的那样,获取onComplete事件中的文件名和路径.然后通过这些这样的参数: -
location.href= "complete.php?filename="+fileObj.name+"&filepath="+fileObj.filePath;
Run Code Online (Sandbox Code Playgroud)
我认为这更好.您可以发送ajax请求来执行整个过程(文件上载+您的"某个过程"),而无需再次加载页面.使用这些参数在事件内写一个$ .post()请求onComplete并发布到"complete.php"
获取onComplete默认情况下不可用的参数
你必须使用
我在uploadify版本2.1.0上工作的response内部参数,onComplete所以我的解决方案肯定会在该版本上运行.如果你只想要一个参数,你可以在uploadify.php
我做完以下事情时回应: -
在我uploadify.php改变了(这是在原始uploadify.php中): -
move_uploaded_file($tempFile,$targetFile);
echo "1";
Run Code Online (Sandbox Code Playgroud)
对此: -
move_uploaded_file($tempFile,$targetFile);
echo $tempFile;
Run Code Online (Sandbox Code Playgroud)
然后在onComplete活动内部发生了爆炸 -
var tmpName = reponse;
Run Code Online (Sandbox Code Playgroud)
但是,如果你想在里面获得多个参数onComplete,这是我可以给出的一个技巧(这不是一个好方法,但我无法通过任何其他方式返回多个参数 - 我尝试返回json数组等) : -
move_uploaded_file($tempFile,$targetFile);
echo $param1.'%%__%%'.$param2;
Run Code Online (Sandbox Code Playgroud)
然后在onComplete活动内部发生了爆炸 -
var paramsArray = explode('%%__%%',reponse);
param1 = paramsArray[0];
param2 = paramsArray[1];
Run Code Online (Sandbox Code Playgroud)