安っぽい質問かもしれませんが、残念ながらプロジェクトの設定を変更することはできません。PHP ページにフォームがあり、いくつかのテキスト フィールドとファイル入力を MVC コントローラー アクションに投稿することになっています。投稿部分が機能し、ViewModel でテキスト データを正常に受信しました。ただし、ファイルを受信する方法がわかりません(画像はjpgまたはpngのいずれかになります)。入力型ファイルのIDとNAMEは「UserIcon」です。
ActionResult では、次のように HttpPostedFileBase で試しました。
public virtual ActionResult RegisterJson(RegistrationModels model, HttpPostedFileBase UserIcon)
ただし、UserIcon は常に NULL です。RegistrationModels
代わりに、モデルの一部としてファイルがある場合:
[DisplayName("Ihr Foto")]
public string UserIcon { get; set; }
curl path:@C:\\Windows\\Temp\\phpA03D.tmp;filename=Penguins.jpg;
を文字列として受け取ります。
しかし、ここからは、ファイルを保存するために次に何をしなければならないかについてはまったくわかりません。curl ヘッダーに追加しようとしました$header = array("Content-type: multipart/form-data");
が、投稿されたフォーム フィールドはすべて NULL です。
誰かが私を正しい方向に向けることができれば、とても感謝しています! 私はここでメインの停電が発生していて、完全に間違ったことをしていると思います:-S
これは、MVC アクションに投稿する curl コードです。
$postargs = array();
foreach ($_FILES as $param => $file) {
$postargs[$param] = '@' . $file['tmp_name'] . ';filename=' . $file['name'] . ';';
}
$fields_string = "";
//url-ify the data for the POST
foreach($_POST as $key=>$value) {
$fields_string .= $key.'='.$value.'&';
}
$fields_string .= http_build_query($postargs);
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($_POST));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
$result = curl_exec($ch);
curl_close($ch);
どうもありがとう!!
乾杯、キャロライン