OnCancel eventは、エラーが発生する度に実行されます。エラー時に使用可能なテキストは、Errorプロパティで指定します。
表示される主要なエラーについては以下のものがあります。
- Error 404
アップロードサービスがみつけられない場合に表示されます。(upload.dllやupload.jarのパスが不適切な場合などです。)また、web serverに許可されているファイルサイズを超過した場合も本エラーが返却されます。また、UploadScriptプロパティのURLが間違っていたりしても同様のエラーが発生します。そのためプロパティの変更には最新の注意を払ってください。
- .NET
アップロードアプリケーションのURL/upload.aspxが画面に表示されます。web/binフォルダに"upload.dll”ファイルが存在するか確認してください。もしエラーがファイルサイズ超過で発生している場合は(4MBより大きい場合)、web.configファイルの"maximum request size" を変更してみてください。"maximum request size” は、KBで指定し、Defaultのサイズは4096KB(4MB)です。
<system.web>
<httpRuntime executionTimeout="600" maxRequestLength="20120"/>
エラーの原因が上記に該当しない場合は、".Net Application Namespace”プロパティをチェックしてください。web.config上でGeneXusが使用するDefaultプロパティが設定されていない場合は、以下の設定を追加してください。
<add name="GeneXus.Programs.upload" verb="*" path="upload.aspx" type="GeneXus.Programs.upload,upload" />
- Java
アップロードアプリケーションのURL/uploadが画面に表示されます。webappフォルダに"upload.jar” ファイルが存在するか確認してください。
もしファイルサイズ超過でエラーが発生している場合は、serverの設定を確認してください。
<servlet>
<servlet-name>upload</servlet-name>
<servlet-class>upload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>upload</servlet-name>
<url-pattern>/servlet/upload</url-pattern>
</servlet-mapping>
- Error 500
テンポラリーファイルは、GeneXusがblobファイルを格納するためのフォルダと同じ場所が使用されます。ファイル名についても、同一の処理で命名されます。
"Temp media directory”プロパティの指定が不適切な場合は、指定したディレクトリのパーミッション設定が不適切な場合に、本エラーが発生します。
- .NET
IIS アプリケーション "web" ディレクトリの"private”フォルダのパーミッションを確認してください。
- Java
エラーメッセージが”HTTP”以外何も表示されていない場合は、jarファイルが喪失した可能性があります。webappディレクトリの"drivers”フォルダにjarファイルをコピーしてください。
もし詳細が表示されている場合は、パーミッションエラーが発生している可能性があります。"Temp media directory”プロパティで指定したフォルダのパーミションを確認してください。
- #2038: IO
UploadScriptプロパティを指定している場合で、URLの形式が不適切な場合に表示されます。Javaプロジェクトの場合に、相対パスを指定した場合や"../servlet/upload”と指定した場合に本エラーが発生します。
- File Size
"sizelimit”プロパティで指定したファイルサイズを超過したファイルがアップロードされた場合に発生するエラーです。
- Error 302
リダイレクトによって発生します。.Netプロジェクトで、web.config内の"SessionState”セクションの"cookieless" か”autodetect”の場合に発生します。Falseを設定することが回避可能です。
- (2.0へのアップグレード)
QueuedFiles変数が定義されていない場合(UploadifyOutputコレクション内です)、またはQueuedFilesプロパティに適切に変数が割り当てられていない場合に本エラーが発生します。
- "HTTP Error" en Java
tomcatのログに次のエラーが表示されていないか確認してください。: org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet invoker threw exception java.lang.NoSuchMethodError: org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest (Lorg/apache/commons/fileupload/RequestContext;)Ljava/util/List; at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest (ServletFileUpload.java:126) at upload.doPost(upload.java:98)
GXClassRの”fileupload"を削除してください。(gxclasses内の \org\apache\commons\fileuploadディレクトです。)
次のドキュメントを確認してください。http://marketplace.genexus.com/question.aspx?22
Tomcat 7.0をJavaプロジェクトで使用してい場合に“Use annotations for servlet definition”が表示
Java using Tomcat 7.0 with “Use annotations for servlet definition”
webappフォルダ内のweb.xmlファイルを次のように編集してください。
<servlet>
<servlet-name>upload</servlet-name>
<servlet-class>upload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>upload</servlet-name>
<url-pattern>/servlet/upload</url-pattern>
</servlet-mapping>
I can't upload files larger than 4 MB (.NET):
web.configファイルの"maximum request size”を修正してください。編集は KBで指定します。Defaultは、4096KB(4MB)が指定されています。
<system.web>
<httpRuntime executionTimeout="600" maxRequestLength="20120"/>
JBOSSをJavaプロジェクトで使用している場合:
上記で説明したTomcatのweb.xmlへの同様の処置を実施してください。また、libディレクトリにcommons-fileupload.jarを追加してください。次のURLよりダウンロード可能です。http://commons.apache.org/fileupload/download_fileupload.cgi
Notas:
En ambiente Java, los archivos Jar (dependencias del proyecto) son incluidos como tipo de dato "File" dentro del control e importados a la KB cuando se arrastra el control a una webform. Son automáticamente copiados dentro de la carpeta "Driver" del modelo Java. GeneXus automáticamente copia su contenido a la carpeta lib de la webapp en el servidor. En algunos casos GeneXus no realiza esta copia y debe hacerse de forma manual. Si este es el caso, después de hacer un "build" a la aplicación copie el contenido de la carpeta dentro de lib.
La KB no debe tener un objeto llamado "upload".