- - PR -
【ASP.NET】リストボックスによるアップロードについて
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-29 10:44
いや、HTMLの仕組み上そういうことは無いと思うのですが・・・ <input type="file" /> がポストされたときにサーバ側にファイルが アップロードされて、SaveAsするまではメモリ上に乗っているイメージだと思います
最初から複数作っておくのではなくて ボタンを押すと新しい <input type="file" /> が作られるUIは Webメールなんかでよく見ますね。 | ||||||||||||
|
投稿日時: 2006-05-29 11:36
なるほど! そういうことですね。それなら、納得です。 見た目上しか気にしていなかったもので、てっきり SaveAs時に行なわれているものと思っていました。
なるほど、です。確かに、そういう UI ありますね。 しかし、UI を変えることは難しいので、今回は無理っぽいです・・・ 今は「追加」時に SaveAs してしまうことで回避しようと考えております。 業務的にはクリアできそうですが、ファイルの削除タイミングが難しいのですけどね。 みなさん、ご迷惑をお掛けし、申し訳ありませんでした。 良い勉強になりました。 | ||||||||||||
|
投稿日時: 2006-05-29 11:42
ひろれいさん、こんにちは。
えーっとですね、「アップロード」という言葉の定義を「サーバのファイルシステムへのファイルイメージ格納まで」とするなら、まあ、そうなのかも知れませんが、データ自体は、サーバに送りつけられている筈ですよ(普通はこれを「アップロード」というような気がします)。 「追加」ボタンのクリック・イベントハンドラあたりで PostedFile.InputStream を覗いてみて下さい。ちゃんと Length も取れてませんか? 【追記】 既に収束していたんですね…。 [ メッセージ編集済み 編集者: きくちゃん 編集日時 2006-05-29 11:55 ] | ||||||||||||
|
投稿日時: 2006-05-29 12:01
はい。たった今、filGet1.PostedFile の中身を「追加」ボタン押下時に確認しました。 おっしゃる通り、サーバ側で取得できていますね。 アップロードの仕組みを理解できておらず、ご迷惑をおかけ致しました。 まさか、メモリ上に情報を取得しており、SaveAs時に実行されるとは思っていませんでしたので(^_^;) ありがとうございました。 | ||||||||||||
|
投稿日時: 2006-05-29 12:06
ひろれいさん、こんにちは〜。
余計な心配事かもしれませんが… http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=30430&forum=7 各ブラウザがセキュリティ対策を行っていく中で、サーバ側でフルパスを取得する処理はいずれ使えなくなりそうです。 あと、ちょっと気になったんですが、
これ、クライアント側で異なるディレクトリの同じファイル名のファイルを指定されると上書きされちゃいません? 追記: 更によく見るとString.Format要らないですね(^^; [ メッセージ編集済み 編集者: ぼのぼの 編集日時 2006-05-29 12:08 ] | ||||||||||||
|
投稿日時: 2006-05-29 12:57
ぼのぼのさん、こんにちは。
むむっ?! 知りませんでした・・・ 有益な情報ですね! ありがとうございます。 では、IE7以降はアップロード方法を見直さないといけないってことですね。 IE6 でも IE7 でも有効なアップロード方法って、現在でもあるのでしょうか? IE7 の正式版(仕様)待ちって感じでしょうか?
そのままだと上書きしますね(^_^;) ただ、「追加」ボタン押下時に同一ファイル名チェックを行なっているので、実際には上書きしないようになっています。 String.Format は、おっしゃる通りです・・・ ただ、修正箇所が多いので、実害ないし、今のところ、見て見ぬ振りをしているのです(^_^;) 何をフォーマットしようと思ったんだか・・・ | ||||||||||||
|
投稿日時: 2006-05-29 16:08
甕星さんが紹介してくれているページを見ると、 <INPUT type=file 〜 > では、ファイル名しか取得できなくなるみたいですね。 じゃあ、Yahoo! とかで出品する際に、確かローカルの画像をアップデート出来たと思いますが、ああいう機能も使えなくなるってことでしょうかね。 大変だ・・・ | ||||||||||||
|
投稿日時: 2006-05-29 16:23
「ファイル名しか」というのはローカルでのフルパスが取得できなくなるだけだと思いますよ。 C:¥folder¥file.txt の「file.txt」は取得できるけど「C:¥folder¥file.txt」は取得できない、みたいに。 #ユーザー名含まれているパス名とか取得されるの、気持ち悪いですしね |