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>

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

    }

?>

どうもありがとう!

4

4 に答える 4

1

Flash スクリプトは、manage.php ページのフォームではなく、uploadify.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

投稿ありがとうございます。実際、私のクライアントはツアー パッケージ用に多数の画像をアップロードする必要があり、それらをデータベースに保存したいと考えていました。このために、複数のアップローダーを使用する必要があります。そのため、共通のパッケージ ID を介してリンクされた画像用に別のテーブルを作成することにしました。画像とそれぞれの id フィールドを含むテーブルを挿入するというアイデアを得ました

あなたより

于 2010-08-07T12:08:35.857 に答える
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); ?>'}
});

最新のアップロードでは、デフォルトのメソッドscripDataPOST. したがって、ファイルで使用する$_POST['id']uploadify.php、uploadify js でメソッドを変更します。

'method' : 'GET'

より完全なパラメーターについては、こちらを参照してください。今はうまくいったと思います。

最後に、uploadify.php代わりにこれを行うことができます:

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

client_id有効な値が含まれていることを確認します。他の値ではなく整数のみが含まれていることを確認するため、エスケープするよりも優れています。

于 2010-01-31T05:36:31.240 に答える