0

これは私のスクリプトです:-

if (isset($_POST['confirm_close_complaint_submit']))
{
    if($_FILES['complaint_file']['tmp_name'] == "none")
    {
        header('Location: complaint-register.php?FileSizeError=1');
        exit();
    }
    $filename = basename($_FILES['complaint_file']['name']);
    $ext = substr($filename, strrpos($filename, '.') + 1);
    if (($ext != "jpg") && ($_FILES["uploaded_file"]["type"] != "image/jpeg"))
    {
        header('Location: complaint-register.php?FileTypeError=1');
        exit();
    }
    else
    {
        $destination = '../../stored/complaint-files/'.$_POST['confirm_close_complaint'].$_FILES['complaint_file']['name'];
        $temp_file = $_FILES['complaint_file']['temp_name'];
        move_uploaded_file($temp_file, $destination);
        $insertSQL = sprintf("UPDATE complaints SET complaint_status='CLOSED', complaint_solved_date=NOW(), complaint_remark=%s WHERE complaint_number=%s",
                       GetSQLValueString($_POST['complaint_remark'], "text"),
                       GetSQLValueString($_POST['confirm_close_complaint'], "text"));
        $Result1 = mysql_query($insertSQL, $dacreint) or die(mysql_error());  
        header('Location: complaint-register.php?ComplaintClose=Successful');
        exit();
    }
}

このスクリプトはmysqlの挿入を行いますが、ファイルはアップロードしません。それは私に成功したメッセージを示しています。

これが私のフォームです:-

<form enctype="multipart/form-data" method="post" action="complaint-register.php">
    <table border="0">
    <tr>
    <td>Remark</td>
    <td><textarea name="complaint_remark" class="textarea"></textarea></td>
    </tr>
    <tr>
    <td>Complaint File</td>
    <td>
        <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
        <input name="complaint_file" type="file" size="100" /></td>
    </tr>
    </table>
    <div class="clear"></div>
    <input name="confirm_close_complaint" type="hidden" value="'.$close_complaint.'" />
    <input name="confirm_close_complaint_submit" type="submit" class="Button" style="float:left;" value="Yes" />
    <input name="" type="button" class="Button" style="float:left;" onClick="javascript:history.go(-1)" value="No" />
    </form>

パスを定義する方法は正しいです$destination = '../../stored/complaint-files/'.$_POST['confirm_close_complaint'].$_FILES['complaint_file']['name'];か?

そして、この状態は大丈夫ですか$temp_file = $_FILES['complaint_file']['tmp_name'];

4

2 に答える 2

4


$_FILES['complaint_file']['temp_name'];
する必要があります

$_FILES['complaint_file']['tmp_name'];
アップロードされた場合は、更新ステートメントを内部に追加します。


if(move_uploaded_file($temp_file, $destination)) {
  //your update statement here
}
else {
  //error
}

宛先パスが有効かどうかを確認してください。次のエラーレポートを設定します。


ini_set('display_errors',1);
error_reporting(E_ALL);
于 2012-04-10T12:00:47.870 に答える
1

move_uploaded_fileからのエラーを処理してみてください。その呼び出しが失敗したという「成功」メッセージを表示しないでください。

于 2012-04-10T12:01:04.887 に答える