0

我一直在尝试使用uploadify脚本无济于事......它将所有文件正确上传到分配的文件夹,但没有通过mysql添加上传的详细信息。

知道我可能在哪里犯错吗?请帮忙。

管理.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>

上传.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.';
        // }

    }

?>

非常感谢!

4

4 回答 4

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'];
于 2010-02-09T19:28:33.563 回答
0

也许是一个php错误?第一行...

<?php require_once('../Connections/speedycms.php); 

(缺少单引号),需要...

<?php require_once('../Connections/speedycms.php'); 

这将解释为什么 mysql_query 不会运行,因为数据库连接不会建立

于 2010-01-29T15:15:36.303 回答
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 中,默认的方法scripDataPOST. 因此,$_POST['id']在您的uploadify.php文件中使用,或更改 uploadify js 中的方法:

'method' : 'GET'

有关更完整的参数,请参见此处。我希望它现在有效。

最后一点,uploadify.php你可以这样做:

$client_id = intval($_GET['id']);

以确保client_id包含有效值。它比仅仅逃避它要好,因为你确保它只包含整数,而不是其他值。

于 2010-01-31T05:36:31.240 回答
0

谢谢你的帖子。实际上,我的客户需要为旅游套餐上传许多图像。我想将它们保存在数据库中。为此,我必须使用多个上传器。所以我决定为通过通用包 ID 链接的图像创建一个单独的表。我有一个想法,用图像和相应的 id 字段插入表格

比你

于 2010-08-07T12:08:35.857 回答