私はMVCプロジェクトをC#で使用しています。コントローラの1つで、外部ソースからHTTP POSTデータを受け取り、ファイルを保存しようとしています。私はいろいろなメソッドシグネチャを試しましたが、どのメソッドを使うのか分かりません。 URLに投稿しようとするたびに私のIISログに404エラーが表示されるため、動作しないことが分かります。フォームデータをMVCコントローラにポストすると404が見つかりませんエラー
私が試してみましたいくつかのことは、私はより多くの洞察力を試してみて、取得するために失敗した要求のログに出要求を
public ActionResult Index(FormCollection forms)
public ActionResult Index(FormCollection forms, HttpPostedFileBase files)
public ActionResult Index()
書いていると私はヘッダがある参照してください。
Content-Length: 158293970
Content-Type: multipart/form-data; boundary=--------------------9228c56ead9fc97c
Accept-Encoding: gzip
Host: myhostinformationhere
User-Agent: SecurityCenter/5.3.1 (201604)
どれでも提案?
さらに詳しい情報が見つかりました。私のサイトに投稿するコードは、curlを使ったPHPコードです。あまりにも多くのベンダーのソースコードを明らかにせずに、私は彼らが問題を解決するのに役立つかもしれないいくつかのことを見ています。ヘッダコードは、彼らはまた、私は次のように私のコードを更新しましたが、私は私のログになりまし
public ActionResult Index(HttpPostedFileBase upload)
{
if (upload != null && upload.ContentLength > 0)
{
var fileName = Path.GetFileName(upload.FileName);
var path = Path.Combine(Server.MapPath(~/Files/Uploads"), fileName);
upload.SaveAs(path);
}
return View();
}
をタイムアウトエラーを取得しています。この
$postFields['reportType'] = $reportType;
$postFields['reportContent'] = curl_file_create($pathInfo['filepath'],$pathInfo['type'],basename($pathInfo['filepath']));
のようなポストフィールドを追加している
$sendHeaders = array ("Except:","X-SecurityCenter: $uuid", "Accept: application/html; charset=utf-8",);
です
上記のコードでは、ファイルがキャプチャされ、正しいディレクトリにアップロードされたことをフィドラーで確認しました。今すぐクライアントソフトウェアから投稿を取得する方法を理解する。
ログには、どのURLが見つかりませんでしたか?要求がどこに送信されているのかは問題である可能性があります。 – CodingYoshi
はい、ログには、アクセスされている正しいURLが表示されます。 – samack
URLをコピーしてブラウザからアクセスできますか?データをポストするのではなく、最初に空のインデックスアクションを打つことを試みてください。エラーが発生した場合は、ブラウザにURLをコピーして貼り付け、何が起こるかを確認してください。 – CodingYoshi