4

ファイルをアップロードしようとするたびに、次のエラーが発生します。

「警告: ファイル アップロード エラー - 行 0 の不明で一時ファイルを作成できません」

これが私のHTMLフォームです。

<form action="./inventory_list.php" enctype="multipart/form-data" name="myForm" id="myForm" method="post">
<table width="625" border="1" cellpadding="5">
  <tr>
    <td width="84">Product Name</td>
    <td width="399"><input type="text" name="product_name" id="product_name"></td>
  </tr>
  <tr>
    <td>Product Price</td>
    <td><label for="textfield2">Rs:</label>
      <input type="text" name="price" id="price"></td>
  </tr>
  <tr>
    <td>Category</td>
    <td><select name="category" id="category">
        <option value="" selected="selected"></option>
        <option value="Bedroom ">Bedroom </option>
        <option value="Living">Living room</option>
        <option value="Dining">Dining</option>
      </select></td>
  </tr>
  <tr>
    <td>Sub - Category</td>
    <td><select name="subcategory" id="subcategory">
        <option value="" selected="selected"></option>
        <option value="dinet">Dining tables</option>
        <option value="shoe">shoe racks</option>
        <option value="wardrobe">wardrobes</option>
        <option value="sofa">sofa</option>
      </select></td>
  </tr>
  <tr>
    <td>Product Details</td>
    <td><textarea name="details" cols="50" rows="10" id="details"></textarea></td>
  </tr>
  <tr>
    <td>Product Image</td>
    <td><label>
        <input type="file" name="fileField" id="fileField"/>
      </label></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="button" id="button" value="Add this Item now"></td>
  </tr>
</table>
</br>
</form>

これが私のPHPコードです。

if(isset($_POST["product_name"]))
{
    $product_name = mysql_real_escape_string($_POST["product_name"]);
    $price= mysql_real_escape_string($_POST["price"]);
    $category= mysql_real_escape_string($_POST["category"]);
    $subcategory= mysql_real_escape_string($_POST["subcategory"]);
    $details= mysql_real_escape_string($_POST["details"]);

    //see if duplicate product exists
    $sql = mysql_query("select id from products where product_name='$product_name' limit 1");
    $product_match = mysql_num_rows($sql);   //count the output

    if($product_match>0)
    {
        echo "The product name already exists";
        exit();
    }
    $sql= mysql_query("INSERT INTO `mystore`.`products` (`product_name`, `price`, `details`, `category`, `subcategory`, `date_added`) VALUES ( '$product_name', '$price', '$details', '$category', '$subcategory', now());")or die(mysql_error());
    $pid = mysql_insert_id();
    $newname = "$pid.jpg";

    move_uploaded_file($_FILES['fileField']['tmp_name'],'../inventory_images/$newname');
}

localhost 、Test Server:XAMPP、OS : MAC 10.8 にアップロードしようとしています

長い間これにこだわっています。いろいろ試してみましたが、何も機能していません。

4

15 に答える 15

6

php.ini をチェックして、'upload_tmp_dir' オプションを探す必要があります。デフォルトでは空です。その後、tmp dir のパーミッションを確認してください。サーバーが使用している upload_tmp_dir を知りたい場合は、このコード スニペットを使用するだけです。

$tmp_dir = ini_get('upload_tmp_dir') ? ini_get('upload_tmp_dir') : sys_get_temp_dir();
die($tmp_dir);

最後に、ターミナル シェルで次のように入力します。 chmod -R 777 'your_tmp_upload_dir'

于 2014-03-18T14:16:51.460 に答える
3

WordPress からファイルをアップロードするときに同じエラーが発生しました。Apacheでこのエラーが発生しましたerror log file

「PHP 警告: ファイル アップロード エラー - 不明な一時ファイルを作成できません」。

でコメントアウトしてエラーを修正しましupload_tmp_dir/etc/php.ini。にupload_tmp_dir設定されました/tmp。も設定しましたdate.timezone。サーバーを再起動した後、WordPress からメディア ファイルをアップロードできました。

/tmpphp にフォルダへの書き込み権限がなかったようです。

于 2015-10-16T13:57:07.170 に答える
1

/tmp ディレクトリに問題がある可能性があります。/tmp に正しいアクセス権限と十分なスペース サイズがあることを確認します。

于 2013-08-23T05:23:47.507 に答える
0

../inventory_images/$newname で二重引用符を使用します。

この行を変更

move_uploaded_file($_FILES['fileField']['tmp_name'],'../inventory_images/$newname');

なので

move_uploaded_file($_FILES['fileField']['tmp_name'],'../inventory_images/'.$newname);

ノート:

一重引用符付きのphpでは、 $newname は文字列として表示されます。

変数の値を表示するには、二重引用符を使用します

于 2013-08-23T05:21:08.357 に答える
0

私の場合、サービスではなくコンソールから httpd.exe Apache サーバーを実行したことが原因でした。

于 2016-02-15T23:20:13.587 に答える
0

プラットフォームが何であるかはわかりませんが、それが Fedora の新しいバージョン (17+) である場合、サービス ファイルで PrivateTmp=true を設定すると、この問題が発生する可能性があります。PrivateTmp=false を指定して /etc にサービス ファイルを作成することは、セキュリティ機能のロールバックを伴いますが、これを修正する少なくとも 1 つの方法です。

于 2013-10-28T18:39:53.490 に答える
0

/tmpWPサーバーと同じように外部ディスクをマウントしたときに同じ問題が発生しました。/tmpまた、完全なクリーンアップ ( 経由rm -rf /tmp/*) が同様の事態を引き起こす可能性があることを示唆する記事もいくつか見ました。主な容疑者はwp-config.phpとであるため、修正方法を理解するのにしばらく時間がかかりましたphp.ini。しかし、結局のところ、それらは赤いニシンでありWP_TEMP_DIR、カスタムを設定または作成しなくてもphp.ini(私のイメージには と しかphp.ini-developmentありませんでしたphp.ini-production)、まったく問題ありません。Wordpress には、一時ディレクトリを識別する適切なデフォルトの動作があります。

構成を操作する前に、/tmpディレクトリが無傷であり、異常なものがないことを確認してください(別のファイルシステム、シンボリックリンクなど)。

于 2021-02-26T10:26:16.843 に答える
0

「アップロード」ディレクトリの権限を変更します。ファイルを移動する前に、Web サーバーにアクセスを許可する必要があります。

アップロード フォルダのアクセス許可 " Read only" を " " にRead & Write変更します

**Edited**

このリンクを読んで、このリンク読んでください。ファイルのアクセス許可を変更する方法をガイドします。

于 2013-08-23T05:31:22.333 に答える