looking at my code that i shared in your other thread, it seems that you 
are missing the redirect to signal to GAE that your handler did what it 
needed to do and GAE should commit the blob to the blobstore.  i assume my 
comment here was important to me when i set this up:

#Raise the HTTP exception so that the response content stays empty.
        #calling redirect puts content in the body which fails the blob 
upload
        raise HTTP(303,
                   Location= URL(r=request,f='upload_image', args=
form.vars.id))


while the example here 
http://code.google.com/appengine/docs/python/blobstore/overview.html shows 
the redirect, they neglect to state that it is required....though i think 
it might be.


On Wednesday, March 7, 2012 1:36:40 AM UTC-8, Sushant Taneja wrote:
>
> Hi,
>
> I am trying to use the Google Blobstore API for uploading images. I also 
> checked the link: http://www.web2pyslices.com/main/slices/take_slice/63 for 
> the help but couldn't understand much.
>
> In my application's (uploadPic) default controller I have the code as 
> follows:
>
> from google.appengine.ext import blobstore
>
> def index():
>     """
>     This provides the upload_url to the upload form
>     """
>     
> upload_url=blobstore.create_upload_url(URL('uploadPic','default','pic'))
>     return dict(upload_url=upload_url)
>
> def pic():
>     """
>     This method stores the bolb key in a table and is used for serving the 
> BLOB images
>     """
>     response.write(request)
>
> In the view index.html, I have a simple form
>
> <html>
>     <body>
>         <form method='post' action='{{=upload_url}}' 
> enctype='multipart/form-data'>
>             <input type='file' name='file'>
>             <input type='submit' name='submit' value='Upload'>
>         </form>
>     </body>
> </html>
>
> As per my understanding, when the upload is successful, GAE automatically 
> redirects to the URL provided in the create_upload_url function with the 
> request containing the blob_key.
>
> But when I execute the above, all I get in the page is None. The log is 
> showing the following:
>
> INFO     2012-03-07 09:30:31,188 dev_appserver.py:2865] "GET 
> /uploadPic/default/index HTTP/1.1" 200 -
> INFO     2012-03-07 09:30:37,558 dev_appserver.py:687] Internal 
> redirection to /uploadPic/default/pic
> INFO     2012-03-07 09:30:37,681 gaehandler.py:69] **** Request: 
> 104.29ms/100.00ms (real time/cpu time)
> INFO     2012-03-07 09:30:37,686 recording.py:372] Saved; key: 
> __appstats__:037500, part: 20 bytes, full: 1234 bytes, overhead: 0.000 + 
> 0.004; link: http://localhost:8080/_ah/stats/details?time=1331112637576
> INFO     2012-03-07 09:30:37,695 dev_appserver_blobstore.py:447] Upload 
> handler returned 200
> INFO     2012-03-07 09:30:37,723 dev_appserver.py:2865] "POST 
> /_ah/upload/ag9kZXZ-aW1hZ2V1cGxvYWRyGwsSFV9fQmxvYlVwbG9hZFNlc3Npb25fXxggDA 
> HTTP/1.1" 200 -
>
> Can someone please help me understand it ? 
>
> Thanks,
> Sushant
>
>
>

Reply via email to