- PR -

ダウンロードしたファイルを編集してアップロードしたい

1
投稿者投稿内容
ムース
会議室デビュー日: 2003/10/06
投稿数: 9
投稿日時: 2006-03-15 22:39
現在、ASP.net(C#)でWeb開発を行っております。

下記の処理を実現したいのですが、アップロード/ダウンロード処理を扱うのが
初めてで苦戦しております・・

-----------------------
1.DB(Oracle)のLONG RAW型カラムにExcelファイルが登録されている
2.サーバ側でSelectし、ブラウザにExcelファイルを表示
3.クライアント側(ブラウザ)でExcelファイルを編集
4.ブラウザで編集したExcelファイルをサーバにアップロード
5.DBのExcelファイルをUpdate
-----------------------

2.の処理までに関しては、
取得したLONG RAW型データをBinaryWriterでサーバ上に保存し
Response.WriteFile()でブラウザに表示するやり方で実現したのですが・・

byte[] lnbData = DBのLONG RAWデータ
FileStream lnoFs = new FileStream(@"c:\Temp\Hoge.xls", FileMode.Create, FileAccess.Write);
BinaryWriter lnoBw = new BinaryWriter(lnoFs);
lnoBw.Write(lnbData, 0, lnbData.Length);

Response.ContentType = "application/vnd.ms-excel";
Response.WriteFile(@"E:\Format_1.xls");
Response.End();


表示した後に、クライアントのブラウザ上で編集されたファイルを
サーバにアップロードする仕組みで行き詰っています。

クライアントに一度ファイルを保存して、FileFieldコントロールを利用して
サーバにアップロードするしか手立ては無いでしょうか。
(しかし、クライアントに保存する方法も思い当たらず・・)


過去ログ等検索したのですが、このような動作に行き当たらず
投稿させて頂きました。
ご教授の程、よろしくお願い致します。

(動作環境 )
WindowsXP(SP2)
MSDE 2003
(.NET Framework1.1)
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-03-15 23:20
引用:

クライアントに一度ファイルを保存して、FileFieldコントロールを利用して
サーバにアップロードするしか手立ては無いでしょうか。



それが、普通のWebサーバとブラウザの組み合わせで出来る限界です。

クライアント側に Office の最近の版と .NET Framework 2.0 ランタイムが導入済みである保証があるなら、まさに VSTO 向きの要件ではあります。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
ムース
会議室デビュー日: 2003/10/06
投稿数: 9
投稿日時: 2006-03-16 10:14
渋木様、返信をありがとうございます。

クライアント端末のOfficeが2000の可能性もあるので、VSTO使用は断念しました。。

となると、クライアントに一度ファイルを保存するしかないのですね(>_<)
その方向で調査を進めてみます!

ブラウザ上で編集したExcelファイルをクライアントに保存する方法で何か良い
やり方がもしありましたら、ご教授頂きたく思いますm(_ _)m
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2006-03-16 10:32
引用:

ムースさんの書き込み (2006-03-15 22:39) より:

2.サーバ側でSelectし、ブラウザにExcelファイルを表示
3.クライアント側(ブラウザ)でExcelファイルを編集


この時点で、すでにデータはブラウザ上に表示されているわけでも、
ブラウザで編集されているわけでもないです。
IE使ってると、見た目だけはそのように見えるみたいですが。
引用:

ブラウザ上で編集したExcelファイルをクライアントに保存する方法


ユーザーが自律的に保存するしか方法はありません。
さもなければセキュリティホールですよ。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-03-16 11:02
引用:

ブラウザ上で編集したExcelファイルをクライアントに保存する方法で何か良い
やり方がもしありましたら、ご教授頂きたく思いますm(_ _)m



すでにコメントがついていますが、ユーザに自発的に保存の手順を実行してもらう以外に方法は無いです。(自動的にできたら、セキュリティホールになり得ます)

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
ムース
会議室デビュー日: 2003/10/06
投稿数: 9
投稿日時: 2006-03-16 11:09
Edosson様、渋木様、返信をありがとうございます。

ユーザが自発的に保存・・・
確かにセキュリティを考えるとそれしかないのですね。
仕組みを全く理解できておりませんでした(>_<)

システムとして考えると、クライアント端末にファイルをダウンロードしている、
という処理をユーザに分からせる事なく行いたいので
今回の処理は方針から考え直す必要がありますね。。
検討し直してみます。

お付き合い頂き、ありがとうございました!

渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-03-16 11:51
引用:

仕組みを全く理解できておりませんでした(>_<)



よくあることです。
そして、実装可能の裏づけも無いままに仕様を顧客に提示してしまってハマる事例のなんと多いことか ;-p

引用:

システムとして考えると、クライアント端末にファイルをダウンロードしている、
という処理をユーザに分からせる事なく行いたいので
今回の処理は方針から考え直す必要がありますね。。



まさに、そういったタイプのソリューションの開発を助けるためにリリースされたのが VSTO なのです。

ダメ元で、VSTO が Office のどのバージョンまでをサポートしているのか調査してみるのも手かと。(ちょっと期待薄感はありますが)

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
1

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