0

イメージを 2 つのアプリケーション (両方ともサーバー上で公開) に保存しようとしています。これは、画像を保存するための私のコードです:

 string path = Server.MapPath("/Images/Landing/bottom_banner/");           
 string path1 = @"_http://10.241.193.22/Myapplication/Images/Landing/bottom_banner/";
  HttpPostedFileBase photo = Request.Files["adup"];
            if (photo.ContentLength != 0)
            {
                string lastPart = photo.FileName.Split('\\').Last();
                Random random = new Random();
                int rno = random.Next(0, 1000);
                photo.SaveAs(path + rno + lastPart);
                photo.SaveAs(path1 + rno + lastPart);
            }

注:Myapplication同じサーバーでホストされている別のアプリケーションです

私の問題は、最初のアプリケーションで画像を保存できることですがServer.MapPath、コンパイラがその部分 photo.SaveAs(path1 + rno + lastPart)に来るとエラーが発生します:

SaveAs メソッドはルート化されたパスを要求するように構成されており、パス '_http://10.241.193.22/Myapplication/Images/Landing/bottom_banner/676Chrysanthemum.jpg' はルート化されていません

この問題を解決するにはどうすればよいか教えてください。

4

2 に答える 2

1

2 番目のサーバーにイメージを POST し、そこで同じメソッド (Server.MapPath) を使用する必要があります。

リモート サーバーに画像 (またはその他のファイル) を保存することはできません。

絶対パス (たとえば) 'C:\Web\ApplicationOne...\image.png\' と 'C:\Web\ApplicationTwo...\image.png' がわかっている場合は、パスの違いを次のように置き換えることができます。

photo.SaveAs(path + rno + lastPart);
photo.SaveAs(path.Replace("ApplicationOne", "ApplicationTwo") + rno + lastPart);
于 2013-04-05T12:27:52.147 に答える
1

これが正しいかどうかわかりませんが、これを行うことができますか?

現在のアプリケーションに Server.MapPath 値を格納し、現在のアプリケーション名を「Myapplication」に置き換えて、末尾のパスを追加します。このようなもの

string path1 = Server.MapPath("");
path1.Replace("Application1", "Myapplication"); //Considering "Application1" is the name of your current application
path1 += "/Images/Landing/bottom_banner/";
HttpPostedFileBase photo = Request.Files["adup"];
        if (photo.ContentLength != 0)
        {
            string lastPart = photo.FileName.Split('\\').Last();
            Random random = new Random();
            int rno = random.Next(0, 1000);
            photo.SaveAs(path1 + rno + lastPart);
        }

これには許可の問題がある可能性があります。私はそれをチェックしていません。それが機能する場合は、私に知らせてください。

于 2013-04-05T12:37:36.387 に答える