Re: Struts 2 File upload to store the filedata
Even i was trying implementing the same think but i couldnt make it. I used image/jpeg inputStream filename="${filename}" 1024 But got an exception saying "Can not find a java.io.InputStream with the name [inputStream] in the invocation stack." 1) couldn't make out what was going wrong. 2)and if i wish to display in my desired .jsp page with single/multiple images in it how do i achieve it? 3)and can i use result type as a tiles 2.0? -- View this message in context: http://old.nabble.com/Struts-2-File-upload-to-store-the-filedata-tp14168069p30776306.html Sent from the Struts - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: Struts 2 File upload to store the filedata
Jeromy Evans - Blue Sky Minds wrote: > > > Hi Johnson, I think just need to read up a little more on Struts 2 as it > seems you're trying to do too much yourself based on Struts1 experiences > rather than let the framework do more of the routine work. Ian Roughly's > book is a good place to start: > http://www.infoq.com/minibooks/starting-struts2 > > Anyway, in a previous email you mentioned you know how to open an input > stream from the image data in your database: > > InputStream in = rs.getBinaryStream("filedata"); > > > The StreamResult requires that an input stream is open and available in > a public property in your action. Here's a section from your new action: > > public class MyAction extends ActionSupport { > // > private InputStream imageStream; > > public String execute() { >// read data from the database ... >//... > imageStream = rs.getBinaryStream("filedata"); >// ... >return SUCCESS; > } > > /** Return an InputStream for the StreamResult */ > public InputStream getImageStream() { >return imageStream; > } > > That's it. We have an open InputStream in a public property in your > action. You don't do anything other than prepare it for reading. > > Now your struts.xml requires the action and result definition. The > definition below states that when your action returns success, the > stream result type (StreamResult) should be used and that the name of > the InputStream property is imageStream (ie. getImageStream()). That > ties it back into the code above. > > > > image/jpeg > imageStream > filename="image.jpg" > 1024 > > > > Hope that helps. After you have that working, you can also experiment > with getting the content type and filename from properties in your action. > Hint: ${contentType} > > Regards, > Jeromy Evans > > > - > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > > > Hi, Jeromy, I used the above method to upload and display the images and succeed. However, if I want to show many images on one page, such as a table like this: user_id_1 user_name_1 user_portrait_1(image) user_id_2 user_name_2 user_portrait_2(image) user_id_3 user_name_3 user_portrait_3(image) user_id_4 user_name_4 user_portrait_4(image) user_id_5 user_name_5 user_portrait_5(image) Is there a way to do it? I used to use display tag to solve similar table display, but with image URL, it doesn't work. -- View this message in context: http://www.nabble.com/Struts-2-File-upload-to-store-the-filedata-tp14168069p23970105.html Sent from the Struts - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: Not able to locate the file stored using Struts 2 file upload interceptor
The FileUploadInterceptor doesn't really store the file for you. It just makes it available to your action so you can process it. After the request has finished, the file is deleted. It should all be described here: http://struts.apache.org/2.1.6/docs/file-upload.html Nils-H On Mon, May 11, 2009 at 2:58 PM, HariniKaushik wrote: > > Hi all, > > I'm trying to upload the file using file upload interceptor. > I have defined the setters and getters for > upload,uploadcontenttype,uploadfilename. > Once tats done the success page displays the path,contenttype and file name. > File path : > D:\Harini\apache-tomcat-6.0.18\work\Catalina\localhost\StartupPoint\upload_170b0f84_1212fa7dbf3__7ffe_.tmp > The jsp displays the file uploaded successfuly message , content type and > file name. > > But when i check inside the localhost\StartupPoint I'm unable to find that > file(or that file is not present). > > Can some one help me on how to locate the file?(or change the location) > 1.Is there any other method through which we can retrieve the lost file. > 2.I tried to change the directory where file gets stored > (struts.multipart.saveDir= D://Filestore) But still am not able to locate > the file. > Appreciate any help > > Thanks, > Harini > > -- > View this message in context: > http://www.nabble.com/Not-able-to-locate-the-file-stored-using-Struts-2-file-upload-interceptor-tp23482689p23482689.html > Sent from the Struts - User mailing list archive at Nabble.com. > > > - > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > > - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Not able to locate the file stored using Struts 2 file upload interceptor
Hi all, I'm trying to upload the file using file upload interceptor. I have defined the setters and getters for upload,uploadcontenttype,uploadfilename. Once tats done the success page displays the path,contenttype and file name. File path : D:\Harini\apache-tomcat-6.0.18\work\Catalina\localhost\StartupPoint\upload_170b0f84_1212fa7dbf3__7ffe_.tmp The jsp displays the file uploaded successfuly message , content type and file name. But when i check inside the localhost\StartupPoint I'm unable to find that file(or that file is not present). Can some one help me on how to locate the file?(or change the location) 1.Is there any other method through which we can retrieve the lost file. 2.I tried to change the directory where file gets stored (struts.multipart.saveDir= D://Filestore) But still am not able to locate the file. Appreciate any help Thanks, Harini -- View this message in context: http://www.nabble.com/Not-able-to-locate-the-file-stored-using-Struts-2-file-upload-interceptor-tp23482689p23482689.html Sent from the Struts - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
RE: Struts 2 file upload
Brian reported a bug with that interceptor in 2.1.7 https://issues.apache.org/struts/browse/WW-2985 the fix being created my own subclass of ExecuteAndWaitInterceptor and overrode getNewBackgroundProcess to return my own implementation of BackgroundProcess should test the same error on 2.1.7 distro Thanks Martin __ Disclaimer and confidentiality note Everything in this e-mail and any attachments relates to the official business of Sender. This transmission is of a confidential nature and Sender does not endorse distribution to any party other than intended recipient. Sender does not necessarily endorse content contained within this transmission. > Date: Tue, 10 Feb 2009 07:43:52 -0800 > From: pie...@hotmail.com > To: user@struts.apache.org > Subject: Re: Struts 2 file upload > > > > > Lund wrote: > > > > > > > > newton.dave wrote: > >> > >> Lund wrote: > >>> I'm using Strurs 2.1.2 and the tag > >>> in > >>> the jsp page. > >>> My problem is that while the fileUpload appears to work most of the time > >>> I > >>> do get java.io.FileNotFoundException: on the .tmp file that Struts uses > >>> as > >>> part of the process (prob 1 in 10 times). Once this happens of course > >>> the > >>> whole process breaks down. > >>> > >>> I boiled the whole process down to a simple test action and tested it > >>> repeatedly and also checked if anyone else had this issue. It appears > >>> that > >>> this issue was fixed as of 2.0.9 release but I am still seeing it. > >>> > >>> I'm using commons-fileupload-1.2.1 and commons-io.1.3.2 > >>> > >>> Any ideas before I abandon struts 2 fileupload? > >> > >> Does the same thing happened with an actual release version of S2.1? > >> > >> Dave > >> > >> > >> - > >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >> For additional commands, e-mail: user-h...@struts.apache.org > >> > >> > >> > > > > > > > > I've switched to release 2.1.6 and changed the multipartrequest processor > > to the Jason Pell version which has improved things. I'll re-post if I get > > the same issue again. What I noticed using the Jakarta processor was that > > the filename of the *.tmp used would be out of range. I.e jakarta was > > looking for 5.tmp whereas the file available was 7.tmp > > > > > > > > > > The problem I'm having is that the is > interferring with the file upload. I haven't gone into in any more depth but > if I remove this interceptor then the FileNotFoundException stops > > -- > View this message in context: > http://www.nabble.com/Struts-2-file-upload-tp21915019p21936355.html > Sent from the Struts - User mailing list archive at Nabble.com. > > > - > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > _ Windows Liveā¢: E-mail. Chat. Share. Get more ways to connect. http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_022009
Re: Struts 2 file upload
Lund wrote: > > > > newton.dave wrote: >> >> Lund wrote: >>> I'm using Strurs 2.1.2 and the tag >>> in >>> the jsp page. >>> My problem is that while the fileUpload appears to work most of the time >>> I >>> do get java.io.FileNotFoundException: on the .tmp file that Struts uses >>> as >>> part of the process (prob 1 in 10 times). Once this happens of course >>> the >>> whole process breaks down. >>> >>> I boiled the whole process down to a simple test action and tested it >>> repeatedly and also checked if anyone else had this issue. It appears >>> that >>> this issue was fixed as of 2.0.9 release but I am still seeing it. >>> >>> I'm using commons-fileupload-1.2.1 and commons-io.1.3.2 >>> >>> Any ideas before I abandon struts 2 fileupload? >> >> Does the same thing happened with an actual release version of S2.1? >> >> Dave >> >> >> - >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >> For additional commands, e-mail: user-h...@struts.apache.org >> >> >> > > > > I've switched to release 2.1.6 and changed the multipartrequest processor > to the Jason Pell version which has improved things. I'll re-post if I get > the same issue again. What I noticed using the Jakarta processor was that > the filename of the *.tmp used would be out of range. I.e jakarta was > looking for 5.tmp whereas the file available was 7.tmp > > > The problem I'm having is that the is interferring with the file upload. I haven't gone into in any more depth but if I remove this interceptor then the FileNotFoundException stops -- View this message in context: http://www.nabble.com/Struts-2-file-upload-tp21915019p21936355.html Sent from the Struts - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: Struts 2 file upload
newton.dave wrote: > > Lund wrote: >> I'm using Strurs 2.1.2 and the tag >> in >> the jsp page. >> My problem is that while the fileUpload appears to work most of the time >> I >> do get java.io.FileNotFoundException: on the .tmp file that Struts uses >> as >> part of the process (prob 1 in 10 times). Once this happens of course the >> whole process breaks down. >> >> I boiled the whole process down to a simple test action and tested it >> repeatedly and also checked if anyone else had this issue. It appears >> that >> this issue was fixed as of 2.0.9 release but I am still seeing it. >> >> I'm using commons-fileupload-1.2.1 and commons-io.1.3.2 >> >> Any ideas before I abandon struts 2 fileupload? > > Does the same thing happened with an actual release version of S2.1? > > Dave > > > - > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > > > I've switched to release 2.1.6 and changed the multipartrequest processor to the Jason Pell version which has improved things. I'll re-post if I get the same issue again. What I noticed using the Jakarta processor was that the filename of the *.tmp used would be out of range. I.e jakarta was looking for 5.tmp whereas the file available was 7.tmp -- View this message in context: http://www.nabble.com/Struts-2-file-upload-tp21915019p21929961.html Sent from the Struts - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: Struts 2 file upload
Lund wrote: I'm using Strurs 2.1.2 and the tag in the jsp page. My problem is that while the fileUpload appears to work most of the time I do get java.io.FileNotFoundException: on the .tmp file that Struts uses as part of the process (prob 1 in 10 times). Once this happens of course the whole process breaks down. I boiled the whole process down to a simple test action and tested it repeatedly and also checked if anyone else had this issue. It appears that this issue was fixed as of 2.0.9 release but I am still seeing it. I'm using commons-fileupload-1.2.1 and commons-io.1.3.2 Any ideas before I abandon struts 2 fileupload? Does the same thing happened with an actual release version of S2.1? Dave - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Struts 2 file upload
Hi I'm using Strurs 2.1.2 and the tag in the jsp page. My problem is that while the fileUpload appears to work most of the time I do get java.io.FileNotFoundException: on the .tmp file that Struts uses as part of the process (prob 1 in 10 times). Once this happens of course the whole process breaks down. I boiled the whole process down to a simple test action and tested it repeatedly and also checked if anyone else had this issue. It appears that this issue was fixed as of 2.0.9 release but I am still seeing it. I'm using commons-fileupload-1.2.1 and commons-io.1.3.2 Any ideas before I abandon struts 2 fileupload? Thanks -- View this message in context: http://www.nabble.com/Struts-2-file-upload-tp21915019p21915019.html Sent from the Struts - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: Struts 2 file upload size validation
mgainty wrote: > > 2.0.11 FileUploadIntereptor.java > > ActionContext ac = invocation.getInvocationContext(); > HttpServletRequest request = (HttpServletRequest) > ac.get(ServletActionContext.HTTP_REQUEST); > HashMap map = request.getParameterMap(); > //for further information take a look at > http://www.docjar.com/docs/api/javax/servlet/ServletRequest.html#getParameterMap > > Tried that and it works as long as the file size validation does not fail in the interceptor. If it fails the parameter map is empty. Any other ideas. -- View this message in context: http://www.nabble.com/Struts-2-file-upload-size-validation-tp17112411p17146914.html Sent from the Struts - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts 2 file upload size validation
Yes if the file size is OK everything is fine. At first we used the default stack. Then we took the default and modified it by moving the fileUploadInterceptor below the params interceptor so it would look something like this: interceptor-stack name="ourUploadStack" interceptor-ref name="exception" interceptor-ref name="alias" interceptor-ref name="servletConfig" interceptor-ref name="prepare" interceptor-ref name="i18n" interceptor-ref name="chain" interceptor-ref name="debugging" interceptor-ref name="profiling" interceptor-ref name="scopedModelDriven" interceptor-ref name="modelDriven" interceptor-ref name="checkbox" interceptor-ref name="staticParams" interceptor-ref name="params" param name="excludeParams"dojo\..*param interceptor-ref interceptor-ref name="conversionError" interceptor-ref name="fileUpload" interceptor-ref name="validation" param name="excludeMethods"input,back,cancel,browseparam interceptor-ref interceptor-ref name="workflow" param name="excludeMethods"input,back,cancel,browseparam interceptor-ref interceptor-stack Thanks R Laurie Harper wrote: > > Rubbinio wrote: >> Hi, >> >> we are trying to use file upload in Struts 2 and run into the following >> problem. >> >> We have a form with multiple fields among which one is a file input >> field. >> The user must complete the form and then select a file to upload. If the >> file size is larger than what we specify in the struts.properties the >> FileUploadInterceptor validates and adds the error. Up to here everything >> is >> fine however upon having the error passed to the action we want to return >> to >> the same form, display the error and have the rest of fields populated >> with >> the values the user has inputed (except the file field). >> >> The problem is that when we get in the action (validate method) none of >> the >> request parameters (form values) are populated. Everything is empty. >> >> The question is why is this happening and how can we have the form values >> populated in the action so that we can display the page correctly ? > > What interceptor stack are you using? Does everything work as expected > if the file size does not exceed the size you specify? > > L. > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/Struts-2-file-upload-size-validation-tp17112411p17125070.html Sent from the Struts - User mailing list archive at Nabble.com.
Re: Struts 2 file upload size validation
The OP wrote: >> we are trying to use file upload in Struts 2... Martin wrote: Struts 1.2.9 Doh! org.apache.struts.chain.servlet.validateActionForm where the validate method is declared as protected ActionErrors validate(Context context, ActionConfig actionConfig, ActionForm actionForm) //reference the actionForm for access to the form attributes 2.0.11 FileUploadIntereptor.java ActionContext ac = invocation.getInvocationContext(); HttpServletRequest request = (HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); HashMap map = request.getParameterMap(); //for further information take a look at http://www.docjar.com/docs/api/javax/servlet/ServletRequest.html#getParameterMap HTH M - Original Message - From: "Rubbinio" <[EMAIL PROTECTED]> To: Sent: Wednesday, May 07, 2008 3:24 PM Subject: Struts 2 file upload size validation Hi, we are trying to use file upload in Struts 2 and run into the following problem. We have a form with multiple fields among which one is a file input field. The user must complete the form and then select a file to upload. If the file size is larger than what we specify in the struts.properties the FileUploadInterceptor validates and adds the error. Up to here everything is fine however upon having the error passed to the action we want to return to the same form, display the error and have the rest of fields populated with the values the user has inputed (except the file field). The problem is that when we get in the action (validate method) none of the request parameters (form values) are populated. Everything is empty. The question is why is this happening and how can we have the form values populated in the action so that we can display the page correctly ? Thanks -- View this message in context: http://www.nabble.com/Struts-2-file-upload-size-validation-tp17112411p17112411.html Sent from the Struts - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts 2 file upload size validation
Rubbinio wrote: Hi, we are trying to use file upload in Struts 2 and run into the following problem. We have a form with multiple fields among which one is a file input field. The user must complete the form and then select a file to upload. If the file size is larger than what we specify in the struts.properties the FileUploadInterceptor validates and adds the error. Up to here everything is fine however upon having the error passed to the action we want to return to the same form, display the error and have the rest of fields populated with the values the user has inputed (except the file field). The problem is that when we get in the action (validate method) none of the request parameters (form values) are populated. Everything is empty. The question is why is this happening and how can we have the form values populated in the action so that we can display the page correctly ? What interceptor stack are you using? Does everything work as expected if the file size does not exceed the size you specify? L. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts 2 file upload size validation
Struts 1.2.9 org.apache.struts.chain.servlet.validateActionForm where the validate method is declared as protected ActionErrors validate(Context context, ActionConfig actionConfig, ActionForm actionForm) //reference the actionForm for access to the form attributes 2.0.11 FileUploadIntereptor.java ActionContext ac = invocation.getInvocationContext(); HttpServletRequest request = (HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); HashMap map = request.getParameterMap(); //for further information take a look at http://www.docjar.com/docs/api/javax/servlet/ServletRequest.html#getParameterMap HTH M - Original Message - From: "Rubbinio" <[EMAIL PROTECTED]> To: Sent: Wednesday, May 07, 2008 3:24 PM Subject: Struts 2 file upload size validation Hi, we are trying to use file upload in Struts 2 and run into the following problem. We have a form with multiple fields among which one is a file input field. The user must complete the form and then select a file to upload. If the file size is larger than what we specify in the struts.properties the FileUploadInterceptor validates and adds the error. Up to here everything is fine however upon having the error passed to the action we want to return to the same form, display the error and have the rest of fields populated with the values the user has inputed (except the file field). The problem is that when we get in the action (validate method) none of the request parameters (form values) are populated. Everything is empty. The question is why is this happening and how can we have the form values populated in the action so that we can display the page correctly ? Thanks -- View this message in context: http://www.nabble.com/Struts-2-file-upload-size-validation-tp17112411p17112411.html Sent from the Struts - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Struts 2 file upload size validation
Hi, we are trying to use file upload in Struts 2 and run into the following problem. We have a form with multiple fields among which one is a file input field. The user must complete the form and then select a file to upload. If the file size is larger than what we specify in the struts.properties the FileUploadInterceptor validates and adds the error. Up to here everything is fine however upon having the error passed to the action we want to return to the same form, display the error and have the rest of fields populated with the values the user has inputed (except the file field). The problem is that when we get in the action (validate method) none of the request parameters (form values) are populated. Everything is empty. The question is why is this happening and how can we have the form values populated in the action so that we can display the page correctly ? Thanks -- View this message in context: http://www.nabble.com/Struts-2-file-upload-size-validation-tp17112411p17112411.html Sent from the Struts - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts 1 & Struts 2 file upload problem
Thank you. You were absolutely right. our struts 2 filter was using /* and the Struts 1 servlet mapping *.do. Once I changed the struts 2 to *.action it all went back to normal. Laurie Harper wrote: Rubbinio wrote: Hi, we have an old application written in Struts 1 and we started adding new features in Struts 2. In the old application we had a file upload form which was working fine. After adding Struts 2, the form does not work anymore because the file field is not populated in the form anymore and it is always null. In the sever console we can see : org.apache.struts2.dispatcher.Dispatcher getSaveDir which does not show up if Struts 2 is removed. Is there any way to have both file uploads ( Struts 1 and 2 ) working in parallel ? And if yes how ? If not how can we disable the Struts 2 file upload ? These should be able to co-exist without problem. You need to include details of your configuration; I suspect you have your Struts 1 servlet mapping and Struts 2 filter mapping configured in such a way as to cause both to be invoked on the same request. Since multi-part request parsing is handled by Struts, not the container, this could well cause a conflict. If that's not what you've done, or you fix that and still have the same problem, re-post with complete details of your relevant configuration (including web.xml, struts.xml and struts-config.xml excerpts at least) so we have enough information to help. L. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts 1 & Struts 2 file upload problem
Rubbinio wrote: Hi, we have an old application written in Struts 1 and we started adding new features in Struts 2. In the old application we had a file upload form which was working fine. After adding Struts 2, the form does not work anymore because the file field is not populated in the form anymore and it is always null. In the sever console we can see : org.apache.struts2.dispatcher.Dispatcher getSaveDir which does not show up if Struts 2 is removed. Is there any way to have both file uploads ( Struts 1 and 2 ) working in parallel ? And if yes how ? If not how can we disable the Struts 2 file upload ? These should be able to co-exist without problem. You need to include details of your configuration; I suspect you have your Struts 1 servlet mapping and Struts 2 filter mapping configured in such a way as to cause both to be invoked on the same request. Since multi-part request parsing is handled by Struts, not the container, this could well cause a conflict. If that's not what you've done, or you fix that and still have the same problem, re-post with complete details of your relevant configuration (including web.xml, struts.xml and struts-config.xml excerpts at least) so we have enough information to help. L. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Struts 1 & Struts 2 file upload problem
Hi, we have an old application written in Struts 1 and we started adding new features in Struts 2. In the old application we had a file upload form which was working fine. After adding Struts 2, the form does not work anymore because the file field is not populated in the form anymore and it is always null. In the sever console we can see : org.apache.struts2.dispatcher.Dispatcher getSaveDir which does not show up if Struts 2 is removed. Is there any way to have both file uploads ( Struts 1 and 2 ) working in parallel ? And if yes how ? If not how can we disable the Struts 2 file upload ? Thanks -- View this message in context: http://www.nabble.com/Struts-1---Struts-2-file-upload-problem-tp16824755p16824755.html Sent from the Struts - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts 2 File upload to store the filedata
Johnson nickel wrote: Hi Evans, I digged in google examples in StreamResult. But, i can't understand. I want to display the images in browser Using StremResult. Instead of ServletOutputStream out= response.getOutputStream(); How can i use StreamResult. Can u give some examples pgm?? That will be helpful.. Regards, Johnson Hi Johnson, I think just need to read up a little more on Struts 2 as it seems you're trying to do too much yourself based on Struts1 experiences rather than let the framework do more of the routine work. Ian Roughly's book is a good place to start: http://www.infoq.com/minibooks/starting-struts2 Anyway, in a previous email you mentioned you know how to open an input stream from the image data in your database: InputStream in = rs.getBinaryStream("filedata"); The StreamResult requires that an input stream is open and available in a public property in your action. Here's a section from your new action: public class MyAction extends ActionSupport { // private InputStream imageStream; public String execute() { // read data from the database ... //... imageStream = rs.getBinaryStream("filedata"); // ... return SUCCESS; } /** Return an InputStream for the StreamResult */ public InputStream getImageStream() { return imageStream; } That's it. We have an open InputStream in a public property in your action. You don't do anything other than prepare it for reading. Now your struts.xml requires the action and result definition. The definition below states that when your action returns success, the stream result type (StreamResult) should be used and that the name of the InputStream property is imageStream (ie. getImageStream()). That ties it back into the code above. image/jpeg imageStream filename="image.jpg" 1024 Hope that helps. After you have that working, you can also experiment with getting the content type and filename from properties in your action. Hint: ${contentType} Regards, Jeromy Evans - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts 2 File upload to store the filedata
a static inner class example is located at org.apache.struts2.util.StrutsUtil called static class ResponseWrapper notice the sout = new ServletOutputStreamWrapper(strout); assignment Difficult to determine what your needs are without more information M-- - Original Message - From: "Johnson nickel" <[EMAIL PROTECTED]> To: Sent: Friday, December 07, 2007 8:39 AM Subject: Re: Struts 2 File upload to store the filedata > > > Hi Evans, > > I digged in google examples in StreamResult. But, i can't > understand. > I want to display the images in browser Using StremResult. > > Instead of ServletOutputStream out= > response.getOutputStream(); > How can i use StreamResult. > > Can u give some examples pgm?? That will be helpful.. > > > Regards, > Johnson > -- > View this message in context: http://www.nabble.com/Struts-2-File-upload-to-store-the-filedata-tf4948427.h tml#a14212685 > Sent from the Struts - User mailing list archive at Nabble.com. > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts 2 File upload to store the filedata
Hi Evans, I digged in google examples in StreamResult. But, i can't understand. I want to display the images in browser Using StremResult. Instead of ServletOutputStream out= response.getOutputStream(); How can i use StreamResult. Can u give some examples pgm?? That will be helpful.. Regards, Johnson -- View this message in context: http://www.nabble.com/Struts-2-File-upload-to-store-the-filedata-tf4948427.html#a14212685 Sent from the Struts - User mailing list archive at Nabble.com.
Re: Struts 2 File upload to store the filedata
Don't use ServletOutputStream within Struts2. Use a StreamResult instead: http://struts.apache.org/2.0.11/docs/stream-result.html In the example provided in the above link, inputName references a property in your action that's an InputStream you need to create from your data. InputStream getInputStream(); If you search, you'll find plenty of examples using StreamResult. regards, Jeromy Evans Johnson nickel wrote: Hi Evans, I want to display the images in browser from the database. I have added my code.It throws null pointer Exception. In my action, i have implements ServletRequestAware,ServletResponseAware interface. I want to know if ServletOutputStream is working in Struts 2.0.6 action class. Can u give a solution for this. InputStream in = rs.getBinaryStream("filedata"); response.setContentType("image/jpeg"); response.addHeader("Content-Disposition","inline;filename=" filename); ServletOutputStream out = response.getOutputStream(); out.flush(); int c; while ((c = in.read()) != -1) { out.write(c); } in.close(); out.close(); No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.15/1174 - Release Date: 6/12/2007 10:11 AM - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts 2 File upload to store the filedata
Hi Evans, I want to display the images in browser from the database. I have added my code.It throws null pointer Exception. In my action, i have implements ServletRequestAware,ServletResponseAware interface. I want to know if ServletOutputStream is working in Struts 2.0.6 action class. Can u give a solution for this. InputStream in = rs.getBinaryStream("filedata"); response.setContentType("image/jpeg"); response.addHeader("Content-Disposition","inline;filename=" filename); ServletOutputStream out = response.getOutputStream(); out.flush(); int c; while ((c = in.read()) != -1) { out.write(c); } in.close(); out.close(); -- View this message in context: http://www.nabble.com/Struts-2-File-upload-to-store-the-filedata-tf4948427.html#a14211550 Sent from the Struts - User mailing list archive at Nabble.com.
Re: Struts 2 File upload to store the filedata
Johnson nickel wrote: Hi Jeromy Evans, Thanks for your reply. I would like to insert the images into my Databases. For that, i'm using byte[] array. In Struts 1.3, I used FormFile class. From this class i got the method getFileData(); In my db, ps.setBytes(1,filedata); // to store the binary datas in DB. /*FormFile mtfile = form.getTheFile(); byte[] filedata = mtfile.getFileData();*/ Ahh, ok. In Struts2, the file is a reference to a temporary file created on your server. If it's not HUGE, just read it into a byte array. The code follows. This code is a fairly standard approach to read an arbitrary length inputstream into a byte array one chunk at a time. If the file can be HUGE, see my comment at bottom. byte[] filedata = readInputStream(new FileInputStream(upload)); /** Read an input stream in its entirety into a byte array */ public static byte[] readInputStream(InputStream inputStream) throws IOException { int bufSize = 1024 * 1024; byte[] content; List parts = new LinkedList(); InputStream in = new BufferedInputStream(inputStream); byte[] readBuffer = new byte[bufSize]; byte[] part = null; int bytesRead = 0; // read everyting into a list of byte arrays while ((bytesRead = in.read(readBuffer, 0, bufSize)) != -1) { part = new byte[bytesRead]; System.arraycopy(readBuffer, 0, part, 0, bytesRead); parts.add(part); } // calculate the total size int totalSize = 0; for (byte[] partBuffer : parts) { totalSize += partBuffer.length; } // allocate the array content = new byte[totalSize]; int offset = 0; for (byte[] partBuffer : parts) { System.arraycopy(partBuffer, 0, content, offset, partBuffer.length); offset += partBuffer.length; } return content; } Disclaimer: This approach is limited to small files (multiple megabytes rather than hundreds/gigs) because of the inefficient memory consumption. It's also quite slow as the commons fileuploader first receives all the data, then writes the entire temporary file, then it's read again entirely into memory, then written back to your database/filesystem. There's no other built-in approach in Struts2 but you'll find ajax fileuploaders on the web that handle massive files better than this. regards, Jeromy Evans - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts 2 File upload to store the filedata
Hi Jeromy Evans, Thanks for your reply. I would like to insert the images into my Databases. For that, i'm using byte[] array. In Struts 1.3, I used FormFile class. From this class i got the method getFileData(); In my db, ps.setBytes(1,filedata); // to store the binary datas in DB. /*FormFile mtfile = form.getTheFile(); byte[] filedata = mtfile.getFileData();*/ In Struts 2.0.6, UploadAction.java private File upload; private String contentType; private String filename; byte [] filedata; // to Store the binary datas public void setUpload(File upload) { this.upload = upload; } same as setUploadContentType,getUploadFileName these are the three methods default for the FileUpload Interceptor. In jsp, Regards, John -- View this message in context: http://www.nabble.com/Struts-2-File-upload-to-store-the-filedata-tf4948427.html#a14168972 Sent from the Struts - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts 2 File upload to store the filedata
Johnson nickel wrote: Hi everyone, I am using Struts 2 and using tag to upload a file. But I get that file as a 'File' object in my action class and using getFileName() on that File object returns me some arbitrary value (something like upload__5b41f107_1127b4befe0__8000_.tmp). I want to retrieve things like Filedata to store the binary datas in my databases. which was possible in struts 1.1 using methods like on getFiledata() using byte [] array FormFile Object. How do I accomplish the same in Struts 2 ? Regards, John Hi John, If the file property in your action is called "anUploadFile", then also add the following properties to your action: String anUploadFileContentType String anUploadFileFileName If you require any other kinds of filedata (eg. size) you'll have to obtain it from the File object. ie. void setAnUploadFile(File file); void setAnUploadFileFileName(String name) void setAnUploadFileContentType(String contentType) For more information, see the FileUploadInterceptor: http://struts.apache.org/2.0.11/docs/file-upload-interceptor.html regards, Jeromy Evans - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Struts 2 File upload to store the filedata
Hi everyone, I am using Struts 2 and using tag to upload a file. But I get that file as a 'File' object in my action class and using getFileName() on that File object returns me some arbitrary value (something like upload__5b41f107_1127b4befe0__8000_.tmp). I want to retrieve things like Filedata to store the binary datas in my databases. which was possible in struts 1.1 using methods like on getFiledata() using byte [] array FormFile Object. How do I accomplish the same in Struts 2 ? Regards, John -- View this message in context: http://www.nabble.com/Struts-2-File-upload-to-store-the-filedata-tf4948427.html#a14168069 Sent from the Struts - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Struts 2 - File upload & converters.
Hello, I am planning to migrate my Struts 1 App to Struts 2. I have a page where I am uploading files to the server. I tried to follow the fileupload sample that comes with the Struts 2 distribution but without success. In my app, I have all the required .jar files in the WEb-INF/lib directory. You can find the parts related to the fileupload below. It seems I am missing some kind of "converters" that would identify that the property upload in my form is of type "file". Thanks for your help. -Karthik. struts.xml file --- /tiles_jsp/dash_board.jsp /tiles_jsp/dash_board.jsp action file: --- public class TestStruts2FileUploadAction extends ActionSupport { private String contentType; private File upload; private String fileName; public String getUploadFileName() { return fileName; } public void setUploadFileName(String fileName) { this.fileName = fileName; System.out.println("File name = " + fileName); } public String getUploadContentType() { return contentType; } public void setUploadContentType(String contentType) { this.contentType = contentType; System.out.println("File content type= " + contentType); } public File getUpload() { return upload; } public void setUpload(File upload) { this.upload = upload; } public String input() throws Exception { return SUCCESS; } public String upload() throws Exception { return SUCCESS; } } --- FileUpload.jsp page: File 'upload' = I am using JBOSS in my application server. When I try tp upload the file, following exception is thrown (as seen in JBOSS log). 2007-04-05 12:15:53,512 DEBUG [com.opensymphony.xwork2.DefaultActionProxy] Creating an DefaultActionProxy for namespace /struts2 and action name TestStruts2FileUpload 2007-04-05 12:15:53,513 DEBUG [com.opensymphony.xwork2.interceptor.ParametersInterceptor] Setting params upload => [ cmk2.jpg ] 2007-04-05 12:15:53,516 DEBUG [com.opensymphony.xwork2.util.XWorkConverter] Property: upload 2007-04-05 12:15:53,516 DEBUG [com.opensymphony.xwork2.util.XWorkConverter] Class: com.breezeware.action.TestStruts2FileUploadAction 2007-04-05 12:15:53,524 DEBUG [com.opensymphony.xwork2.util.XWorkConverter] converter is null for property upload. Mapping size: 0 2007-04-05 12:15:53,524 DEBUG [com.opensymphony.xwork2.util.XWorkConverter] field-level type converter for property [upload] = none found 2007-04-05 12:15:53,524 DEBUG [com.opensymphony.xwork2.util.XWorkConverter] global-level type converter for property [upload] = none found 2007-04-05 12:15:53,524 DEBUG [com.opensymphony.xwork2.util.XWorkConverter] falling back to default type converter [EMAIL PROTECTED] 2007-04-05 12:15:53,529 DEBUG [com.opensymphony.xwork2.util.OgnlValueStack] Error setting value ognl.MethodFailedException: Method "setUpload" failed for object [EMAIL PROTECTED] [java.lang.NoSuchMethodException: setUpload([Ljava.lang.String;)] at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:823) at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:964) at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:75) at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:131) at com.opensymphony.xwork2.util.OgnlValueStack$ObjectAccessor.setProperty(OgnlValueStack.java:68) at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1656) at com.opensymphony.xwork2.util.CompoundRootAccessor.setProperty(CompoundRootAccessor.java:44) at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1656) at ognl.ASTProperty.setValueBody(ASTProperty.java:101) at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177) at ognl.SimpleNode.setValue(SimpleNode.java:246) at ognl.Ognl.setValue(Ognl.java:476). - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]