我一直在努力使uploadify脚本无济于事......它将所有文件正确上传到指定的文件夹,但没有通过mysql添加上传的详细信息。
任何我可能犯错误的想法?请帮忙。
manage.php
<script type="text/javascript">
$(document).ready(function() {
$("#uploadify").uploadify({
'uploader' : 'resources/uploadify.swf',
'script' : 'resources/uploadify.php',
'folder' : 'files',
'queueID' : 'fileQueue',
'auto' : true,
'onAllComplete' : function(){ alert("Thank you. All files have been uploaded successfully."); },
'multi' : true
});
});
</script>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] . '?id=' . intval($client_id); ?>">
<p>
<b>File Upload</b></p>
<div id="fileQueue"></div>
<input type="file" name="uploadify" id="uploadify" />
<p><a href="javascript:jQuery('#uploadify').uploadifyClearQueue()" class="form">Cancel all uploads</a></p>
<a href="#viewFiles" class="form" rel="facebox">View files</a>
<div id="viewFiles" style="display:none;" rel="facebox">
<div style="width:300px; height: 300px;"></div>
</div>
</p>
</form>
uploadify.php
<?php require_once('../Connections/speedycms.php);
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
$fileName = $_FILES['uploadify']['name'];
$fileSize = $_FILES['uploadify']['size'];
$fileType = $_FILES['uploadify']['type'];
$client_id = mysql_real_escape_string($_GET['id']);
// $fileTypes = str_replace('*.','',$_REQUEST['fileext']);
// $fileTypes = str_replace(';','|',$fileTypes);
// $typesArray = split('\|',$fileTypes);
// $fileParts = pathinfo($_FILES['Filedata']['name']);
// if (in_array($fileParts['extension'],$typesArray)) {
// Uncomment the following line if you want to make the directory if it doesn't exist
// mkdir(str_replace('//','/',$targetPath), 0755, true);
move_uploaded_file($tempFile,$targetFile);
echo "1";
mysql_query("
INSERT INTO tbl_accidentfiles SET client_id='$client_id', name='${fileName}', path='${targetFile}', size='$fileSize', content_type='${content_type}'");
// } else {
// echo 'Invalid file type.';
// }
}
?>
非常感谢!
答案 0 :(得分:1)
flash脚本调用的是uploadify.php文件,而不是manage.php页面上的表单。
尝试更改:
$fileName = $_FILES['uploadify']['name'];
$fileSize = $_FILES['uploadify']['size'];
$fileType = $_FILES['uploadify']['type'];
为:
$fileName = $_FILES['Filedata']['name'];
$fileSize = $_FILES['Filedata']['size'];
$fileType = $_FILES['Filedata']['type'];
答案 1 :(得分:0)
也许是php错误?第一行...
<?php require_once('../Connections/speedycms.php);
(缺少单引号),需要......
<?php require_once('../Connections/speedycms.php');
这将解释为什么mysql_query不能运行,因为不会设置数据库连接
答案 2 :(得分:0)
您的代码有一些错误,因为在uploadify.php
中您有:
$client_id = mysql_real_escape_string($_GET['id']);
但是你没有在uploadify js代码中传递它。为此,请使用以下代码:
$("#uploadify").uploadify({
'uploader' : 'resources/uploadify.swf',
'script' : 'resources/uploadify.php',
'folder' : 'files',
'queueID' : 'fileQueue',
'auto' : true,
'onAllComplete' : function(){ alert("Thank you. All files have been uploaded successfully."); },
'multi' : true,
scriptData : {'id': '<?php echo intval($client_id); ?>'}
});
在最新的uploadify中,scripData
的默认方法是POST
。因此,在$_POST['id']
文件中使用uploadify.php
,或更改uploadify js中的方法:
'method' : 'GET'
See here获取更完整的参数。我希望它现在有效。
最后请注意,在uploadify.php
中,您可以这样做:
$client_id = intval($_GET['id']);
确保client_id
包含有效值。它比逃避它更好,因为你确保它只包含整数,而不是其他值。
答案 3 :(得分:0)
Thanx的帖子。 实际上我的客户需要上传一个旅游套餐的图像数量。我想将它们保存在数据库中。为此,我必须使用多个上传器。 所以我决定为通过普通包ID链接的图像创建一个单独的表。 我有一个想法,插入带有图像和相应id字段的表
比你