ホームページ  >  記事  >  バックエンド開発  >  PHP はサーバーとして機能し、クライアントによってアップロードされたファイルをどのように受信しますか?

PHP はサーバーとして機能し、クライアントによってアップロードされたファイルをどのように受信しますか?

WBOY
WBOYオリジナル
2016-06-23 14:02:221253ブラウズ

C++ を使用してクライアントをローカルに作成し、PHP を使用してサーバー側でこのファイルを受け入れて保存するプログラムを作成したいと考えています。サーバー上でリッスンするプログラムを作成する必要がありますか、またはそのためにプログラムをリンクする方法はありますか。データ送信


ディスカッション(解決策)に返信

postメソッドを使用してmultipart/form-dataヘッダーを追加します
phpはアップロードされたファイルを自動的に識別します

putメソッドを使用する場合は、以下を読む必要があります天びん製品側の php://input リソースから ファイルの内容を取得します

post メソッドを使用して multipart/form-data ヘッダーを追加します
PHP はアップロードされたファイルを自動的に識別します

put メソッドを使用する場合は、天びん製品側の php://input リソースからファイルの内容を読み取る必要があります。数行の特定のコードを記述できますか? PHP を学び始めたばかりです、ありがとう

rreee

post メソッドを使用して multipart/form-data ヘッダーを追加します
PHP はアップロードされたファイルを自動的に識別します

put メソッドを使用する場合は、バランス製品の php://input リソースからファイルのコンテンツを読み取る必要がありますここにプログラムがあります。これがわかりません

if($_SERVER["REQUEST_METHOD"]=="POST")
{
//アップロードするファイルの最大サイズ。
$MAX_SIZE = 20000000;
echo $MAX_SIZE;
$FILE_MIMES = array('image/jpeg','image/jpg','image/gif' ,'image/png' ,'application/msword','text/plain','application/octet-stream','application/x-zip-compressed');

//許可されるファイルの種類を設定します。フォーマットに従って追加してください。
$FILE_EXTS = array('.zip','.jpg','.png','.gif','.doc','.txt','.rar','zip'); *************************************************** * ********
* 変数を設定する
************************************ * *************************/
$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']); $url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']

$upload_dir = "files/"
$upload_url = $url_dir."/files/"; $message ="";

/*************************************************** * ********
* アップロードディレクトリを作成します
*********************************** * ************************/
if (!is_dir("files")) {
if (!mkdir($upload_dir))
die ("upload_files ディレクトリが存在しないので作成します失敗しました");
if (!chmod($upload_dir,0755))
die ("権限を 755 に変更できませんでした。");
echo $upload_dir;
}

/*************************************************** * ********
* ユーザー リクエスト プロセス。以下で使用されるすべてのアップファイルは VC クライアントと一致する必要があり、バッチで置き換えることができます。 HotpimUploadDlg.cpp の 224 行目を参照してください。
************************************************ ***********/


if ($_FILES['upfile'])
{
$resource = fopen("log.txt","a");
fwrite($resource,date("Ymd h:i:s")."UPLOAD - $ _SERVER[REMOTE_ADDR]"
.$_FILES['upfile']['name']."
.$_FILES['upfile']['type']."n");
fclose($resource);

$file_type = $_FILES['upfile']['type'];
$file_name = $_FILES['upfile']['name'];
$file_ext = substr($file_name,strrpos($file_name,") "));

//ファイルサイズチェック
if ( $_FILES['upfile']['size'] > $MAX_SIZE)
$message = "ファイルサイズが 2MB を超えています。";
// ファイルの種類/拡張子チェック
else if (!in_array($file_type, $FILE_MIMES) && !in_array($file_ext, $FILE_EXTS) )
$message = "申し訳ありませんが、$file_name($file_type) はアップロードできません。"; else
$message = do_upload($upload_dir, $upload_url);

else if (!$_FILES['upfile']);
else
$message = "無効なファイルが指定されました。"; ($upload_dir, $upload_url)
{
$temp_name = $_FILES['upfile']['tmp_name'];
$file_name = $_FILES['upfile']['name']; \","",$file_name);
$file_name = str_replace("'","",$file_name);
$file_path = $upload_dir.$file_name;

//ファイル名チェック
if ( $file_name = = "") {
$message = "指定されたファイル名";
return $message;

$result = move_uploaded_file($temp_name, $file_path)
if (!chmod($file _path,0755))
$ Message = "許可を 755 に変更しました。";
Else
$ Message = ($ Result)? ファイルをアップロードしています。 ";;
Return $ message;
}
?>

プログラムを理解するには、PHP マニュアルを読むことをお勧めします。

説明と例が記載されている $_FILES マニュアルを読むことをお勧めします

さて、皆さんありがとうございます。引き続き PHP マニュアルを読みます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。