3

またはをclient(C#)使用してファイルを送信しています。でクライアントから送信されたファイルを受信する方法を知りたいです。を確認しました。空です。webclientHttpWebRequestPHP(Server)$_POST

クライアントコード (c#):

using (WebClient client = new WebClient())
{
 client.UploadFile("http://path/file.php","POST",@"Data.txt");
}
4

2 に答える 2

12

はい、$_POST空になり$_FILESます。アップロードされたファイルの変数を確認する必要があります: ここに簡単なスニペットがあります:

<?php
$uploaddir = "uploads/";
$uploadfile = $uploaddir . basename( $_FILES['file']['name']);

if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))
{
  echo "The file has been uploaded successfully";
}
else
{
  echo "There was an error uploading the file";
}
?>

上記のスクリプトの $_FILES の内容は次のとおりです。

$_FILES['file']['name']クライアント マシン上のファイルの元の名前。

$_FILES['file']['type']ファイルの MIME タイプ (ブラウザがこの情報を提供した場合)。例は「image/gif」です。

$_FILES['file']['size']アップロードされたファイルのバイト単位のサイズ。

$_FILES['file']['tmp_name']アップロードされたファイルがサーバーに保存されたファイルの一時ファイル名。

$_FILES['file']['error'] PHP 4.2.0 以降、PHP はファイル配列とともに適切な次のエラー コードを返します。

  • UPLOAD_ERR_OK – 値: 0; エラーはありません。ファイルは正常にアップロードされました。
  • UPLOAD_ERR_INI_SIZE 値: 1; アップロードされたファイルが php.ini の upload_max_filesize ディレクティブを超えています。
  • UPLOAD_ERR_FORM_SIZE 値: 2; アップロードされたファイルは、HTML フォームで指定された MAX_FILE_SIZE ディレクティブを超えています。
  • UPLOAD_ERR_PARTIAL 値: 3; アップロードされたファイルは部分的にしかアップロードされていません。
  • UPLOAD_ERR_NO_FILE 値: 4; ファイルがアップロードされていません。

アップロードされたファイルは、デフォルトでサーバーのデフォルトの一時ディレクトリに保存されます。変数$_FILES['file']['tmp_name']は、それが保存されている場所に関する情報を保持します。アップロードされたファイルを正しい場所に保存するには、move_uploaded_file 関数を使用する必要があります。

于 2013-03-15T07:29:06.667 に答える
2

以下のコードを参照として使用する必要があります。

    if(isset($_FILES['file']['name']) && !empty($_FILES['file']['name']))
    {
    $name=$_FILES['file']['name'];
    
    $size=$_FILES['file']['size'];
    $type=$_FILES['file']['type'];
    $tmp_name=$_FILES['file']['tmp_name'];
    $error=$_FILES['file']['error'];
    $maxsize ="Your size limit";
    $location='Your location to upload file';

    // perform any security check here...

   if($size <= $maxsize)
    {
     if(move_uploaded_file($tmp_name, $location.$name))
        {
          // perform your operation down here
        }
    }

   }  

注: -この行の $_FILES['file']['name'] file は、フォーム ファイル フィールドの名前を表します。

于 2013-03-15T07:45:03.960 に答える