私はftpを使ってファイルをアップロードすることができるサーバーホストを所有しています。 私は動作するコードを持っていて、1つの奇妙なことを除いてサーバーにファイルをアップロードできます。私/ユーザーがログインしている(認証されていれば)ファイルをアップロードできません。これは暗闇の中で誰かがおそらくなぜこれが分かっているかを知るためのショットです。ログイン中にファイルをアップロード中にエラーが発生しました
私はあなたの場合には、ログインし、暗所での撮影をいけない場合、この作品言ったように私のエラーメッセージは、私がアップロードに使用し、この
Access to the path 'D:\hshome\PATH' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj) at System.IO.Directory.CreateDirectory(String path) at BasicProject.Mvc.Areas.Account.Controllers.ProfileController.Test(TestViewModel viewModel)
私のコードは、この
foreach (string item in Request.Files)
{
HttpPostedFileBase file = Request.Files[item];
if (file != null)
{
var path = "File";
var filePath = System.Web.HttpContext.Current.Server.MapPath("~/" + path + "/");
if (!Directory.Exists(filePath))
Directory.CreateDirectory(filePath);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://SITE/SITE/" + path + "/" + file.FileName);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential("USER", "PASSWORD");
request.UsePassive = false;
var sourceStream = new StreamReader(file.InputStream);
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
}
です同じ問題を抱えていた私は、解決策の一部を得ることがより喜ばれるだろう。
これを回避するにはどうすればよいですか?私は私のweb.configで偽装しようとしましたが、私はそこにそれを持っていないというエラーが表示されます。 Response.Write()はどうすればよいですか? –
あなたはたぶん偽装を望まないでしょう。おそらくファイルをアプリケーションプールユーザーとして書きたいと思うかもしれません(これは主にあなたがそれを言及していないので、私は何も知らないホスティングプロバイダによって異なる可能性があります)。彼らが何が起こっているのか知っていればホスト? – yakatz