GroupSession
現在、グループセッションを会社内でテスト運用中です。文書ファイルをファイル管理のフォルダ内ににアップロードしたいのですが、どうやってもエラーになります。やり方はクライアントにファイルを置きHTTPコマンドをブラウザに直接入力しています。フォルダへのアクセス権も付与していますし、アップロードするファイルも確かに存在します。いったいどのようにすればアップロードできるかご教授いただけますでしょうか。環境サーバー:ニフティクラウド CentOS 6.4 64bitJ2EEコンテナ:Apache Tomcat/6.0.24Java:1.7.0_51 Oracle Corporation発行コマンドhttp://URL/gsession/api/file/add.do?fdrParentSid=1&formFile="d:\a.txt"結果<Result url="/gsession/api/file/add.do">ファイルを選択してください。</Result>
GS Ver.4.2.5 の WEBAPIの説明書(P.18)では、添付ファイルを指定するパラメータは、「 uploadFile 」となってますので、 http://URL/gsession/api/file/add.do?fdrParentSid=1&uploadFile"d:\a.txt"ではないでしょうか?
ご回答ありがとうございした。説明書を読み違えてなぜか値の方をしていたようです。ただ、それで実行しますと警告画面が出て、やはりアップロードできません。メッセージを見ると型が違うとのことなのですが、何が違うのかわかりません。質問ばかりで申し訳ありませんがご教示願えますか。使用コマンドhttp://175.184.31.13/gsession/api/file/add.do?fdrParentSid=3&uploadFile="d:\a.txt"結果警告サーバエラーが発生しました。回線が込み合っている可能性があります。時間をおいて再接続してください。サーバエラーログjavax.servlet.ServletException: BeanUtils.populate 略 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) at java.lang.Thread.run(Thread.java:744)Caused by: java.lang.IllegalArgumentException: Cannot invoke jp.groupsession.v2.api.file.add.ApiFileAddForm.setUploadFile on bean class 'class jp.groupsession.v2.api.file.add.ApiFileAddForm' - argument type mismatch - had objects of type "java.lang.String" but expected signature "org.apache.struts.upload.FormFile" at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:2235) at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:2151) at org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1957) at org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:2064) at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1017)... 33 moreCaused by: java.lang.IllegalArgumentException: argument type mismatch at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:2170)... 37 more
ファイルはパスを指定するのではなく、ファイルそのものをPOSTする必要があります。ご参考になればと思います。
ファイルの内容自体をバッファか何かにためてそれをPOSTするということでしょうか。一度試してみます。ご回答ありがとうございました。
上記の続きとなります。質問ばかりで申し訳ありませんがお助け下さい。WEB APIでのファイルアップロードについてEXCEL2007 VBAでローカルクライアントにあるPDFファイルをファイル管理のフォルダにアップロードしようとしています。フォルダ情報を取得し、アップロードするファイルのフォルダIDを取得するまではうまくいっているのですが、そのPDFをアップロードするのがうまくいきません。いろいろ試したのですが、どうすればいいのわかりません。どなたかご教示お願いいたします。エラー内容2014-04-01 15:21:28,575 ERROR jp.groupsession.v2.struts.GSExceptionHandler:42 - 予期せぬエラーorg.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url.プログラム抜粋 Open cFileName For Binary Access Read As #iFileNo Len = 1 'バイナリファイル読み込み Do While Not EOF(iFileNo) Get #iFileNo, , bBuf buf = buf & Hex(bBuf) Loop 'ファイルを閉じる Close #iFileNo 'パラメータ paramStr = "fdrParentSid=" paramStr = paramStr & encodeUTF8(Worksheets("setting").Cells(i, 1)) paramStr = paramStr & "&uploadFile=" paramStr = paramStr & encodeUTF8(buf) 'POST実行 Set xmlhttp = CreateObject("msxml2.xmlhttp") xmlhttp.Open "POST", "http://URL/gsession/api/file/Add.do?", False xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" xmlhttp.send (paramStr)パラメータにはフォルダのIDとPDFファイルの中身をバイナリで取出しUTF-8に変換したデータが入っています。fdrParentSid=%35&uploadFile=%32%35%35%30%34%34%34%36%32%44%33%31%32%45%33%35%44%41%32%35~~
こんにちは。私もこの投稿気になります。同じ問題で悩んでいます。ショートメールにも添付ファイルをつけることができないのですが、おそらく、投稿主さんの問題が解決すると、こっちも解決するのでは、、と考えています(・∀・)
ファイルのデータ型「formFile」となっています。「formFile」とRFC2388で定義されています。参考:https://www.ietf.org/rfc/rfc2388.txt実際に、この形式に従ってデータを作ればアップロードすることができました。
TOP