
Ajaxを使用してファイルをPOSTしようと思っています。
jQuery+AJAX Uploadを使ってのPOSTはできました。
ですが、受け手側(API)の仕様により、ファイルをPOSTするのではなく、
ファイルの内容をデータとして転送する必要があり困っています。
イメージとしては、multipart、--boundary--を使わないで
input type="text" value="エンコードしたファイルの内容"
でPOSTする感じのことをやりたいです。
JavaScriptでPOSTするファイルの内容を参照する方法
ご存知でしたら教えて下さい。
参考)
AJAX Upload:http://valums.com/projects/ajax-upload/
No.2ベストアンサー
- 回答日時:
> JavaScriptでPOSTするファイルの内容を参照する方法
> ご存知でしたら教えて下さい。
この方法はありませんが、
<input type="file">を使用していても、multipart/form-dataを使わなくても送信は可能です。
ファイルの中に&の文字が入っていると、そこでフォームフィールドの区切りと見なされますので、ファイルが分割されるかもしれません。
たとえば
<input type="text" name="a" value="あいうえお">
<input type="text" name="b" value="かきくけこ">
これを送信すると
a=あいうえお&b=かきくけこ
というデータが送られます。
multipart/form-dataを使わずに、
<input type="file" name="a">
を使用して、
あいうえお&b=かきくけこ
と書いたファイルを送信すると、
a=あいうえお&b=かきくけこ
というデータが送られることになりますので、
「&b=かきくけこ」という部分は、aのファイルの一部なのか、
aのファイルとは別に<input type="text" name="b" value="かきくけこ">というフィールドから送られてきたものなのか、区別が付かなくなります。
それを区別できるようにするものがmultipart/form-dataです。
言い換えれば、
ファイルの中に&や=の文字がないこと、および、バイナリデータではないことを保証できるなら、
または、サーバー側で、a=以外の&や=の区切りを無視する設定にしてあれば、
multipart/form-dataを使わなくても正常に送信することは可能です。
この回答への補足
なるほど。そういった方法もあるのですね。勉強になります。
残念なことに今回はバイナリデータなので、分割された場合に順番がわからなくなりファイルが壊れるだろうと思われるので、諦めて代替処置で補うことにします。
また別の機会で必要になりましたら、是非試してみようと思います。
ありがとうございました。
No.1
- 回答日時:
JavaScriptはローカルなファイルにアクセスできない仕様なので無理です。
Windows IE 環境ならVbscript、Jscriptで可能かもしれません。
あるいは、人が対象ファイルを開いてtextareaに貼り付けするしかないですね、もっともバイナリーファイルなら事前に別途クライアント側でエンコードする必要がありますね。
それともPROXYとなる自分のCGIプログラムを作ってそこから変換してPOSTさせるとか
この回答への補足
やはり無理ですか…。
Ajaxで送信する際に、転送するファイル(データ)へアクセスできるかと思ったのですが、残念です。
CGIを使って1クッション置く方法はダメだった場合に考えているのですが
転送するファイルの容量が大きく、CGIのサーバ側でリミットを変更する必要があり、できれば…と思っています。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
社内Excel共有ブックでの保存ト...
-
vbsでゴミ箱への移動
-
Dream weaverで、誤ってファイ...
-
相手のPCにVBAからメッセ...
-
共有フォルダに誰が何にアクセ...
-
AccessVBAで作成したExcelファ...
-
複数ファイルのデータの統合に...
-
Access VBA を利用して、フォル...
-
特定のエクセルファイルを起動...
-
特定のフォルダに入れたファイ...
-
Batch: フォルダ内の特定のファ...
-
Excel VBA 処理後データが重た...
-
ホームページ作成中に溜まる不...
-
(Excelマクロ)datファイルをエ...
-
拡張子が「cda」のファイルを聞...
-
『ファイルの上書きの確認』ダ...
-
WEBクエリが使えない場合のHPデ...
-
HTMLとデータベースの連携
-
月が変わったら自動でシートが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
特定のエクセルファイルを起動...
-
Batch: フォルダ内の特定のファ...
-
共有フォルダに誰が何にアクセ...
-
excelを共有ファイルにすると行...
-
社内Excel共有ブックでの保存ト...
-
AccessVBAで作成したExcelファ...
-
事務の派遣で働いています。多...
-
VBAでCSVファイルが使用中かど...
-
拡張子が「cda」のファイルを聞...
-
Access VBA を利用して、フォル...
-
(Excelマクロ)datファイルをエ...
-
【VBA】異なる行だけを抜き出す...
-
【アクセス】「ほかのユーザー...
-
Excel VBA 処理後データが重た...
-
相手のPCにVBAからメッセ...
-
access関数を説明できる方いま...
-
XMLデータを変換し印刷する方法
-
WEBクエリが使えない場合のHPデ...
-
メールで送られてきたワードの...
おすすめ情報