1

私のウェブサイトでは、コードビハインドで画像をフォルダー(写真)に保存します

ImageUploadControl.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("~/Photos/" + Name + ext));

'Access not allowed'これは中程度の信頼でエラーをスローします。中程度の信頼で画像を保存する代替手段はありますか? クライアントが認証なしでこれらのイメージにアクセスするため、フォルダーはパブリックにアクセスできる必要があるため、App_Data に保存できません (この問題の 1 つの修正)

*Web サイトは、hostgator 共有プランでホストされています。サーバー構成について要求できる量には制限があります。

編集:

はい、アクセスの問題です。〜チルダを解決すると、仮想パスは許可されません。誰かがこの問題の回避策を持っていることを願っています。

4

2 に答える 2

1

OK、パスの問題なので:

https://support.hostgator.com/articles/hosting-guide/lets-get-started/server-path-absolute-path

*nix ボックスで ASP.NET を実行していますか? それとも、Windows Server と IIS で実行されていますか?

また、この場合、コードを修正する必要があるかもしれません。

string pathRoot = HttpContext.Current.Server.MapPath("~/Photos/");
ImageUploadControl.PostedFile.SaveAs(pathRoot + "/" + Name + ext);

元のコードがmapPath、存在しないファイル パスを含めて使用しようとしているようです。

1行にする必要がある場合、これは機能する可能性があります。

ImageUploadControl.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("~/Photos/") + Name + ext);
于 2013-04-23T08:49:34.977 に答える
1

ネイティブの .NET コントロールを使用していることを考えると、環境の信頼よりもファイル システムのアクセス許可が原因であると思います。サードパーティのコントロールを使用していた場合、それは信頼の問題だと思います。

彼らが cPanel を使用している Hostgator を簡単に見てみると、そこからファイル マネージャー セクションがあり、ここで'Photos'フォルダーを選択して [アクセス許可の変更] を選択すると、フォルダーにアプリケーションからの書き込みアクセス権があることを確認します。

編集


*nix アクセス許可の設定に関するサポート記事はこちら: https://support.hostgator.com/articles/cpanel/how-to-change-permissions-chmod-of-a-file

そして: https://support.hostgator.com/articles/specialized-help/technical/my-script-needs-to-use-777-permissions

于 2013-04-23T08:13:25.230 に答える