2012-01-11 11 views
0

Webサーバにファイルをアップロードする必要のあるCクライアントがあります。 ファイルを開いて、Windowsライブラリを使用して送信しています。CクライアントからPHPサーバへのファイルのアップロード

サーバー側では、ファイルを保存するPHPスクリプトを作成したいと思います。

質問#1: これは、PHPの通常のHTMLのFORMのPOSTではありませんので、 - どのように私はそれのデータとともにファイル名を転送しますか? POST '/upload.php?file=filename'を使用し、本文にデータを送信することをお勧めしますか? これを使用すると、$ _GET経由でファイル名を取得し、$ _POST経由でファイル内容を取得できます。

質問#2: ファイルが2つ以上のパケットにまたがるとどうなりますか? POST本体をファイルに追加するためにPHP側で何らかの形で接続を追跡する必要があります。それを行うためのクリーンな方法はありますか?

ありがとうございました!

+0

**一度に質問してください^ _^ – Neal

答えて

0

libcurlを試してみてください。ファイルアップロードもできます。

また、multipart/form-data MIMEタイプ、およびファイルとメタデータのエンコード方法についても学ぶことができます。簡単に言えば、要求本体を部分的に境界線で分割し、各ファイルにヘッダーを追加します。

+0

私のプロジェクトではlibcurlを使用できません。 私はWinHTTPを使用しています(ファイル全体を読み込んでPHPスクリプト – user1144031

+0

に投稿しています)。それでmultipart/form-data形式を使用できるならば、ファイルはPHPの$ _FILES配列にありますブラウザで送信されたときと同じです。実際にリクエストボディ全体としてファイルを送信するだけの場合は、GETを使用してください。 –

+0

あなたが尋ねる前に、 (PHPは通常、POSTデータを解析して実際に起動する前に$ _POST配列に値を設定しているので、RAMに格納されていないかどうかはわかりません)。スクリプト)。 –

関連する問題