えぐぴょんさん ご返信ありがとうございます。 クライアントサイドでfileupload validatorを導入し、sizeオーバー、イメージファイル以外をチェックするように実装しようと思います。 同名ファイルは、ファイル名だけをajaxでサーバー通信し検索結果があればバリデートしようと思います。
ご助言どうもありがとうございました。 2013年11月19日火曜日 8時33分25秒 UTC+9 えぐぴょん: > > おはようございます。 > > ファイルをアップロードする前に、ファイル名だけをチェックするの通信を行えばいいんじゃないか?と思います。 > それでOKなら、ファイルのアップロードボタンをEnableにするとかの演出を行えば、ユーザにもネット(トラフィック)にも優しいのではないか?と思います。 > > > こういった話は、node.jsに限らず、Webシステム全般に言えることじゃないかと思います。 > > 以上、ご参考までに > Kazuyuki Eguchi > > > 2013年11月18日 22:43 Leo Azuki <azuk...@gmail.com <javascript:>>: > > 江口さん ご返信ありがとうございます。 > > > >>もしかしたら、間違っているかもしれませんが、サーバ側でバリエートチェックした時点では、ファイルがアップロードされちゃうと思います。 > > > > > 実はapp.limit('2mb')の部分のバリデートではファイルのアップロードが防がれていまして、ということはサーバー側でなんとかなるのではないかと思ったのですがクライアントチェックでやるのもよさそうですね。 > > ただクライアントチェックですと既にアップされた同名ファイルのチェックは、一度サーバー検索かけた結果をクライアントに戻してチェックする形になるのでしょうか? > > > > > node.jsを用いたファイルアップロード処理は結構多そうなのでぜひお知恵を拝借させてください。 よろしくお願いします。 > > > > 2013年11月18日月曜日 21時05分39秒 UTC+9 えぐぴょん: > >> > >> こんばんは > >> 江口です。 > >> > >> もしかしたら、間違っているかもしれませんが、サーバ側でバリエートチェックした時点では、ファイルがアップロードされちゃうと思います。 > >> > >> > >> > HTTPはリクエスト−レスポンス方式なので、リクエストの電文にファイルも載ってきてしまいますから、レスポンスで、これは受け入れられなかったと、クライアントに返答できますが、リクエストに載ってっきてしまったファイルはサーバ側で削除するしかないとおもいますが・・・ > > > >> > >> アップロードする前に、クライアント(Webブラウザ側)でバリエートチェックするのがいいと思いますが・・・ > >> > >> 以上、ご参考までに > >> Kazuyuki Eguchi > >> > >> > >> 2013年11月18日 19:56 Leo Azuki <azuk...@gmail.com>: > >> > node.js, expressを用いたシステムを構築中でして、イメージファイルのアップロード処理にてお聞きします。 > >> > > >> > > fs.renameを用いてアップロード処理にて、同名のファイル、jpeg,gif,png以外、2メガ以上のファイルはアップロードできないように実装しています。、ポスト後のサーバー側の処理にてバリデートは正常にひっかかるのですが、app.postでリクエストが届いた直後に指定のフォルダにファイルがアップロードされてしまっています。(ファイル名はこんな感じです。e84df8517af642bb96bf0cd80e30b100.jpg)バリ > > > >> > バリデートにひっかかったら、ファイルはアップロードされないようにしたいのですが、どなたか知恵を拝借させていただきたく投稿いたします。 > >> > よろしくお願いします。 app.configureの設定は以下のようにしています。 > >> > > >> > app.configure(function() { > >> > app.set('port', process.env.PORT || 3000); > >> > app.use(express.limit('2mb')); > >> > app.use(express.bodyParser({ > >> > //onPart: onPart, > >> > keepExtensions: true, > >> > uploadDir: './uploads/fullsize' > >> > })); > >> > app.use(express.cookieParser()); > >> > app.use(express.session({secret: '○○○'})); > >> > app.use(express.methodOverride()); > >> > app.use(express.static(path.join(application_root, 'public'))); > >> > app.use(flash()); > >> > app.use(app.router); > >> > app.use(lib.notFoundHandler); > >> > app.use(lib.errorHandler); > >> > }); > >> > > >> > -- > >> > > >> > --- > >> > このメールは Google グループのグループ「Node.js 日本ユーザグループ」の登録者に送られています。 > >> > このグループから退会し、メールの受信を停止するには、nodejs_jp+unsubscr...@googlegroups.com<javascript:> > >> > > >> > にメールを送信します。 > >> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。 > > > > -- > > > > --- > > このメールは Google グループのグループ「Node.js 日本ユーザグループ」の登録者に送られています。 > > このグループから退会し、メールの受信を停止するには、nodejs_jp+unsubscr...@googlegroups.com<javascript:>にメールを送信します。 > > > > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。 > -- --- このメールは Google グループのグループ「Node.js 日本ユーザグループ」の登録者に送られています。 このグループから退会し、メールの受信を停止するには、nodejs_jp+unsubscr...@googlegroups.com にメールを送信します。 その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。