- PR -

Image.Saveメソッドについて。

投稿者投稿内容
いのつち
ベテラン
会議室デビュー日: 2002/05/14
投稿数: 73
投稿日時: 2003-06-16 15:03
b.Save("mypicture2.jpg",ImageFormat.Jpeg); ←ここでエラーです。

フルパスで指定してみてはいかがでしょう。
パス指定がない場合、ASPXの実行と同じディレクトリなのかと思ったのですが、
そうではないようで。例外が出ますね。
まめ
会議室デビュー日: 2003/06/04
投稿数: 17
投稿日時: 2003-06-16 15:17
こんにちは。

フルパスで指定してみたりもしたのですが、
コンパイルエラーになってしまうんです。
(認識できないエスケープシーケンスです。 と注意されます。)

b.Save("c:\inetpub\wwwroot\mypicture2.jpg",ImageFormat.Jpeg); 
というように書いてみたりしたんですけど。。。

ご迷惑をおかけしてます、申し訳ございません。

いのつち
ベテラン
会議室デビュー日: 2002/05/14
投稿数: 73
投稿日時: 2003-06-16 17:29
\マークは特殊な記号なので、\マーク自身を表現するには、
 \\ とします。
または、@マークで始めると、純粋に文字列のままとして認識します。

 "c:\\inetpub\\wwwroot\\mypicture.jpg"

または、
 @"c:\inetpub\wwwroot\mypicture.jpg"

このあたりは、C#の言語仕様リファレンスを熟読してください。
まめ
会議室デビュー日: 2003/06/04
投稿数: 17
投稿日時: 2003-06-16 18:00
出来ました!

みなさま、どうも色々ありがとうございました。

そして、C#の言語仕様リファレンスを熟読します。
これに懲りずに、また宜しくお願い致します・・・。
GUNNM
常連さん
会議室デビュー日: 2002/01/23
投稿数: 30
お住まい・勤務地: 横浜
投稿日時: 2003-06-16 23:49
解決したみたいなのに、後から申し訳ありません。
Server.MapPath(".")とやると、ASPXが走っているフォルダを取得できますよ。
rvmx
大ベテラン
会議室デビュー日: 2002/09/26
投稿数: 184
お住まい・勤務地: 愛媛県
投稿日時: 2003-06-17 11:54
今日は

確かに、Server.MapPath(".")でフォルダーを取得出来ますが
この場合はセキュリテイ上ふさわしくないと思います。
プログラムの実行フォルダに外部アクセス者の書き込み権限を
与えることになります。
GUNNM
常連さん
会議室デビュー日: 2002/01/23
投稿数: 30
お住まい・勤務地: 横浜
投稿日時: 2003-06-18 08:12
セキュリティですか。。
おっしゃるとおりですね。
実行フォルダの下にデータのフォルダを作ればOKでしょうか?

ところで、セキュリティの話をするのなら、サーバー上にファイルを自動生成しないほうが良いと認識しているのですが、間違いでしょうか?

動的に生成した画像をWebで公開したり、ダウンロードさせたりするのが目的だったら、
生成した画像データをResponse.BinaryWriteするAPSXを開発するべきだと考えているのですが、、、
rvmx
大ベテラン
会議室デビュー日: 2002/09/26
投稿数: 184
お住まい・勤務地: 愛媛県
投稿日時: 2003-06-18 08:53
今日は

>実行フォルダの下にデータのフォルダを作ればOKでしょうか?
私の個人的な意見では、書き込み権限を許可したフォルダーは出来れば、
推測が困難な全然関係ない、場所に作った方が良いのではないかと思います。

>ところで、セキュリティの話をするのなら、サーバー上にファイルを自動生成しないほ>うが良いと認識しているのですが、間違いでしょうか?

>動的に生成した画像をWebで公開したり、ダウンロードさせたりするのが目的だった、
>生成した画像データをResponse.BinaryWriteするAPSXを開発するべきだと考えているの>ですが
これも個人的な意見ですが、それら二つはWebを見る側の要求により使い分けています。
画像を只見るだけで有れば、Streamで返せば非常に楽です。
只、画像の再利用などが想定される時は、ファイルを作りそれへリンクさせて置きます、この方法は複数同時アクセスに対しての考慮が必要となります。

スキルアップ/キャリアアップ(JOB@IT)