0

バイナリファイルをアップロードするユニティC#プログラムがあります(一部のデータを含む)。(これは無関係ですが、そうではないかもしれません)

var form = new WWWForm();
form.AddField("docid", "A");               
byte[] textarr = Encoding.ASCII.GetBytes("just a sample text to be compressed and sent to server");
form.AddBinaryData("file", textarr,"file.tmp");                
string req = "my url";        
WWW www = new WWW(req,form);

PHP側でバイナリとしてデータベースに送信できるように、ファイルの内容を(バイナリとして)取得したいと考えています。

私はこのようなことをしようとしています:

$binaridata = ~$_FILES["file"]["name"] (what do i need to do here? tried 

file_get_content などですが、常にいくつかのエラーが発生します)

ご協力いただきありがとうございます!

4

2 に答える 2

2
$binaryData = file_get_contents($_FILES['file']['tmp_name']);
                                                 ^^^^^^^^

ファイルは で示されるパスに保存されます。これはクライアントによって指定された名前であり、実際には無関係ですtmp_namename

ただし、データベースとの対話方法とデータベースによっては、ファイルの内容全体を変数に読み込む必要はありません。たとえば、PDO 経由で Postgres を使用する場合は、次のようにします。

$stmt = $pdo->prepare('INSERT INTO ... VALUES (:file)');

$fh = fopen($_FILES['file']['tmp_name'], 'rb');
$stmt->bindParam(':file', $fh, PDO::PARAM_LOB);

$stmt->execute();

データベース アダプタはファイルをストリームとして読み取ります。これは、ファイルをメモリに保存するよりもはるかに経済的です。データベース アダプタのマニュアルを参照してください。

于 2013-02-23T10:35:18.207 に答える
-1


$binaridata = $_FILES["file"]["name"];
セミコロンを追加して ~
Shadowpatを削除してみませんか

于 2013-02-22T16:59:49.787 に答える