1

それで、クライアントの Web サイトにフォームを置いたところ、写真を 1 つか 2 つ添付できるようにフォームを変更するよう依頼されました。そのため、いくつかのテストを実行しています。フォームを送信するたびに、次のエラーが発生します。

警告: fopen() [function.fopen]: 32 行目の /homepages/20/d153810528/htdocs/fabFormHandlerTEST.php のファイル名を空にすることはできません

警告: fread(): 指定された引数は、/homepages/20/d153810528/htdocs/fabFormHandlerTEST.php の 33 行目の有効なストリーム リソースではありません

警告: fclose(): 指定された引数は、/homepages/20/d153810528/htdocs/fabFormHandlerTEST.php の 100 行目の有効なストリーム リソースではありません

今、何らかの理由で、ファイル名がフォームから渡されていないと推測しています。空白を送信しているわけではありません。実際に「参照」ボタンをクリックして、jpg を選択しています。

まず、HTML からのファイル入力コードは次のとおりです。

<td class="form">Picture #1 (optional)</td>
<td><input type="file" name="picture1" id="picture1" /></td>

[送信] をクリックすると、フォーム ハンドラーに名前が「picture1」として送信されます。

「picture1」を処理するための私のPHPコードは次のとおりです。

$file1name=$_FILES['picture1']['name'];
$file1type=$_FILES['picture1']['type'];
$file1size=$_FILES['picture1']['size'];
$file1temp=$_FILES['picture1']['tmp_name']; 

そして、問題が始まる 32 行目と 33 行目です。

$fp1=fopen($file1name,"rb");
$file1=fread($fp1,$file1size);

fopen() 関数の $file1name を $file1temp に置き換えてみましたが、違いはありませんでした。

サーバーが fopen() を許可するように設定されていることを確認しました。

私は何が欠けていますか???

編集

完全なフォームは次のとおりです。

<form enctype="multipart/form-data" name="contactRich" id="contactRich" method="post" action="fabFormHandlerTEST.php" onsubmit="return fabFormValidate()">
<table cellpadding="6">
    <tr>
        <td colspan="2"><h3>Contact</h3></td>
    </tr>
    <tr>
        <td class="form">Your name:</td>
        <td><input type="text" id="cName" name="cName" size="31"></td>
    </tr>
    <tr>
        <td class="form">Neighborhood or closest major intersection:</td>
        <td><input type="text" name="cNeighborhood" size="31"></td>
    </tr>
    <tr>
        <td class="form">Your phone number:<br><span class="footer">(Include area code)</span></td>
        <td>(<input type="text" size="3" maxlength="3" name="cAreaCode"/>) <input type="text" id="cNumber" name="cNumber" size="23" maxlength="8" onkeyup="addHyphen()"></td>
    </tr>
    <tr>
        <td class="form">Your e-mail address:</td>
        <td><input type="text" name="cEmail" size="31"></td>
    </tr>
    <tr>
        <td class="form">What can we help you with?</td>
        <td><select name="cTopic">
                <option value="null">(Please choose:)</option>
                <option value="an estimate">Estimate</option>
                <option value="bifold doors">Bifold doors</option>
                <option value="broken window ropes">Broken window ropes</option>
                <option value="door that won't stay shut">My door won't stay shut!</option>
                <option value="noisy doors">My door is noisy!</option>
                <option value="sticking doors">My door is sticking!</option>
                <option value="drywall repairs">Drywall repairs</option>
                <option value="garbage disposals">Garbage disposals</option>
                <option value="grab bars">Grab bars</option>
                <option value="your various services">(other)</option>
            </select></td>
    </tr>
    <tr>
        <td class="form">Any additional details?</td>
        <td><textarea name="cAdditional" cols="27" rows="4" wrap="soft"></textarea></td>
    </tr>
    <tr>
        <td class="form">Picture #1 (optional)</td>
        <td><input type="file" name="picture1" id="picture1" /></td>
    </tr>
    <tr>
        <td class="form">Picture #2 (optional)</td>
        <td><input type="file" name="picture1" id="picture1" /></td>
    </tr>
    <tr>
        <td class="form">Picture #3 (optional)</td>
        <td><input type="file" name="picture1" id="picture1" /></td>
    </tr>
    <tr>
        <td></td>
        <td><input type="submit" value="Submit" /></td>
    </tr>
    <tr>
        <td colspan="2"><hr /></td>
    </tr>
</table>
<input type="hidden" id="isValid" name="isValid" value="no" />
</form>
4

2 に答える 2

1

どうやらの値$file1nameは空または NULL です。一時的に追加して問題の原因を追跡しますprint_r($_FILES);

于 2012-10-30T18:30:40.427 に答える
0

PHP は、$file1name に何も含まれていないことを示しています。HTML フォームに正しい enctypeを設定していることを確認し、「一般的な落とし穴」セクションを確認してください。

于 2012-10-30T18:31:28.197 に答える