On Friday, August 30, 2019 at 11:42:37 AM UTC-7, Rahul wrote:
>
>
> Hi Dave and Everyone,
>         I followed your advice --  Thanks for the code cleanup - However 
> the issues still exist
>
> *ISSUE*#1 - The photo is still being saved in 
> [E:\web2py_src\web2py\applications\*artpicstatic*\user_uploads] 
> Correct path where it should be saved is [infile:  
> E:\web2py_src\web2py\applications\artpic\static\user_uploads\]
> I simply do not understand why the application is saving the file in above 
> path and not in the correct path in green. We have removed the problem 
> causing code [foto_path = (request.folder + "static/user_uploads/" + 
> upload_pic) ] from this method so where is it pulling it from and saving 
> the files to this location only. Where is this magic happening from? Is it 
> web2py
>


I think it is time to see the declaration of db.fotoz.

/dps
 

> *ISSUE*#2 - As the application cannot find the file in the correct path 
> mentioned above it fails to create a thumbnail for it
>
>
>
> UPDATED CODE listing
>
>
>  form = SOLIDFORM(db.fotoz , fields=fields, submit_button='Upload Foto') 
>    
>     #if form.accepts(request.vars, session):
>     if form.process().accepted:
>         upload_pic = form.vars.upload_photo
>         recordsID= form.vars.id
>         #Thumbnail code
>         print ("----------------")       
>         infile = os.path.join(request.folder, "static", "user_uploads", 
> upload_pic)
>         print "infile: " , infile
>         
>         thumbnail_filename = "%s.thumbnail.jpg" % recordsID
>         print "thumbnail_filename: ", thumbnail_filename
>         
>         thumbpath = outfile = os.path.join(request.folder, "static", 
> "thumbs" , thumbnail_filename)      
>         print "thumbpath and outfile: ", outfile
>
>         #Insert thumbnail and thumbnail path in db  imgthumb field.
>         db(db.fotoz.id==recordsID).update(imgthumb=thumbnail_filename, 
> imgthumbpath=thumbpath)  ##outfile
>         if infile != outfile:
>             try:
>                 
>                 im = Image.open(infile)
>                 im.thumbnail(size)         
>                 #Check for image format
>                 image_format = (im.format)
>                 #print ("Image format: ", image_format)
>
>
>                 ### ================ Watermark stuff 
> ======================
>                
>                 ## Watermark Text --
>                 width, height = im.size
>                 draw = ImageDraw.Draw(im)
>                 
>                 
>                 watermark_text = "WATER"
>                 watermark_font = ImageFont.truetype('arial.ttf', 20)
>                 textwidth, textheight = draw.textsize(watermark_text, 
> watermark_font)
>                 # calculate the x,y coordinates of the text
>                 margin = 5
>                 x = width - textwidth - margin
>                 y = height - textheight - margin
>
>                 # draw watermark in the bottom right corner
>                 ## Specify this to fill font with red color , 
> fill=(128,0,0,128))  OR  #, fill=shadowcolor) OR  fill="red" or 
> fill="#ff0000" -- work
>                 draw.text((x, y), watermark_text, font=watermark_font, 
> opacity=0.25)
>                 
>                 ##  --- Watermark text ends ---               
>         
>                 #Process various image formats for making thumbnails. 
> Currently supporting JPG/JPEG, GIF and PNG
>                 if (image_format == "JPEG"):                    
>                     im.save(outfile, "JPEG")
>                 if (image_format == "JPG"):                    
>                     im.save(outfile, "JPG")
>                 if (image_format == "GIF"):
>                     im.save(outfile, "GIF")
>                 if (image_format == "PNG"):
>                     im.save(outfile, "PNG")
>             except IOError:
>                 print "Cannot create thumbnail (un-recognized format) 
> for: ", infile
>                 #pass
>                 
>         response.flash='Photo uploaded'
>
>
>
>
> *OUTPUT *- Path output for above code --* NOTE The infile must be saved 
> in the path mentioned below but it does not exist there. *
> ----------------
> infile:  
> E:\web2py_src\web2py\applications\artpic\static\user_uploads\fotoz.upload_photo.bf976468faa81f30.3030372e4a5047.JPG
> thumbnail_filename:  99.thumbnail.jpg
> thumbpath and outfile:  
> E:\web2py_src\web2py\applications\artpic\static\thumbs\99.thumbnail.jpg
> Cannot create thumbnail (un-recognized format) for:  
> E:\web2py_src\web2py\applications\artpic\static\user_uploads\fotoz.upload_photo.bf976468faa81f30.3030372e4a5047.JPG
>
> Regards,
>
> Rahul
>
>
>
>
>
> On Friday, August 30, 2019 at 1:42:44 AM UTC+5:30, Dave S wrote:
>>
>>
>>
>> On Thursday, August 29, 2019 at 12:21:41 PM UTC-7, Rahul wrote:
>>>
>>> Hi Val and Dave,
>>>
>>> Have a look at the code below - the line foto_path=... below works but 
>>> it uploads the photos to    "web2py\applications\artpicstatic\user_uploads" 
>>> folder instead of web2py\applications\artpic\static\user_uploads folder. It 
>>> also generates the thumbnail file.  Now  if I use  *foto_path = 
>>> os.path.join(request.folder + "static/user_uploads/" + upload_pic)* it 
>>> shows the right path after normalization but does not upload the photo at 
>>> all. And since it does not upload the photo the rest of the code fails  to 
>>> generate thumbnails etc and throws this error . m using windows 10 with 
>>> python 2.7.13
>>>
>>> -  <type 'exceptions.IOError'> [Errno 2] No such file or directory: 
>>> 'E:\\web2py_src\\web2py\\applications\\artpic\\static\\user_uploads\\fotoz.upload_photo.82bfeee5a1affabd.3033372e4a5047.JPG'
>>>
>>> CODE:
>>> -------
>>>         #foto_path = (request.folder + "static/user_uploads/" + 
>>> upload_pic)
>>>         print ("----------------")
>>>         foto_path = (request.folder + "static/user_uploads/" + 
>>> upload_pic)
>>>
>>
>> Bzzt.   Concantenating different parts of the path is tetchy.  I'd use 
>> os.path.join() ALWAYS, and let it provide the separators.  You missed one, 
>> it seems.
>>
>> /dps
>>
>>
>>         print "Foto Path: ", foto_path
>>>         
>>>         normal_foto_path = os.path.normpath(foto_path)        
>>>         print "Normal Foto Path: ", normal_foto_path
>>>         
>>>         infile = normal_foto_path
>>>         print "infile: " , infile
>>>         
>>>         thumbnail_filename = ("%s" % recordsID + ".thumbnail.jpg")
>>>         print "thumbnail_filename :", thumbnail_filename
>>>         
>>>         outfile_path = os.path.join(request.folder, "static/thumbs/" + 
>>> thumbnail_filename)
>>>         print "outfile_path: ", outfile_path
>>>         
>>>         normal_outfile_path = os.path.normpath(outfile_path)
>>>         print "normal_outfile_path ", normal_outfile_path
>>>         
>>>         outfile = normal_outfile_path        
>>>         print "outfile: ", outfile
>>> -----------
>>> OUTPUT ITERATIONS: 
>>>
>>> [1]
>>>
>>> Foto Path:  
>>> E:\web2py_src\web2py\applications\artpicstatic/user_uploads/fotoz.upload_photo.8c9837615e4fa932.3035382e4a5047.JPG
>>> Normal Foto Path:  
>>> E:\web2py_src\web2py\applications\artpicstatic\user_uploads\fotoz.upload_photo.8c9837615e4fa932.3035382e4a5047.JPG
>>> infile:  
>>> E:\web2py_src\web2py\applications\artpicstatic\user_uploads\fotoz.upload_photo.8c9837615e4fa932.3035382e4a5047.JPG
>>> thumbnail_filename : 64.thumbnail.jpg
>>> outfile:  
>>> E:\web2py_src\web2py\applications\artpic\static\thumbs\64.thumbnail.jpg
>>> ----------------
>>> [2]
>>>
>>> Foto Path:  
>>> E:\web2py_src\web2py\applications\artpicstatic/user_uploads/fotoz.upload_photo.838dbfb13f66470d.3030312e4a5047.JPG
>>> Normal Foto Path:  
>>> E:\web2py_src\web2py\applications\artpicstatic\user_uploads\fotoz.upload_photo.838dbfb13f66470d.3030312e4a5047.JPG
>>> infile:  
>>> E:\web2py_src\web2py\applications\artpicstatic\user_uploads\fotoz.upload_photo.838dbfb13f66470d.3030312e4a5047.JPG
>>> thumbnail_filename : 65.thumbnail.jpg
>>> outfile_path:  
>>> E:\web2py_src\web2py\applications\artpic\static/thumbs/65.thumbnail.jpg
>>> normal_outfile_path  
>>> E:\web2py_src\web2py\applications\artpic\static\thumbs\65.thumbnail.jpg
>>> outfile:  
>>> E:\web2py_src\web2py\applications\artpic\static\thumbs\65.thumbnail.jpg
>>>
>>> ------------
>>> [3]
>>>
>>> infile:  
>>> E:\web2py_src\web2py\applications\artpicstatic\user_uploads\fotoz.upload_photo.862f9808c7622ca7.3033372e4a5047.JPG
>>> thumbnail_filename:  79.thumbnail.jpg
>>> outfile:  
>>> E:\web2py_src\web2py\applications\artpic\static\thumbs\79.thumbnail.jpg
>>> thumbpath:  
>>> E:\web2py_src\web2py\applications\artpic\static\thumbs\79.thumbnail.jpg
>>> Cannot create thumbnail (un-recognized format) for:  
>>> E:\web2py_src\web2py\applications\artpicstatic\user_uploads\fotoz.upload_photo.862f9808c7622ca7.3033372e4a5047.JPG
>>>
>>>
>>> SCREENSHOT
>>>
>>>
>>>
>>>
>>> CODELISTING IS ATTACHED
>>>
>>> Looks like a simple answer  but feels like my code is badly written... 
>>>
>>> Regards,
>>>
>>> Rahul 
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Thursday, August 29, 2019 at 2:17:49 AM UTC+5:30, Val K wrote:
>>>>
>>>> It is no need to use different code for win/linux, since it is Python!
>>>> There is os.path.normpath(your_path) that does all stuff with slashes, 
>>>> I have app that works on both platforms just fine (without platform 
>>>> checking at all)
>>>> My way - always use '/'  in path, and at the end of all manipulations 
>>>> performs normalisation:  path = os.path.normpath(path)     
>>>> And keep in mind that os.path.join() also works with filenames, so you 
>>>> can just os.path.join('foo', 'bar', 'baz.thumbnail.jpg')
>>>>         
>>>>   
>>>>
>>>> On Wednesday, August 28, 2019 at 9:05:11 PM UTC+3, Rahul wrote:
>>>>>
>>>>> Hi Dave,
>>>>>      
>>>>> upload_pic is the form variable that user specifies for uploading the 
>>>>> file from local disk. Basically it is the filename. I removed the braces 
>>>>> for
>>>>>     outfile = (thumbpath)
>>>>> but this is still not working. Any more suggestions ? 
>>>>>
>>>>>
>>>>> Regards
>>>>> Rahul
>>>>>
>>>>> On Tuesday, August 27, 2019 at 2:21:45 PM UTC+5:30, Rahul wrote:
>>>>>>
>>>>>> Hey Dave, 
>>>>>>           I was facing issues with path storage in a db field so I 
>>>>>> started using this method. I dont need outfiles curly braces will 
>>>>>> revisit 
>>>>>> the code today if possible and get back with the details. This is my 
>>>>>> modified code, previous one was straight forward and streamlined code 
>>>>>> and 
>>>>>> was using simple code.Thanks for the questions I’ll try getting in 
>>>>>> details. 
>>>>>>
>>>>>> Regards, 
>>>>>>
>>>>>> Rahul
>>>>>
>>>>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/707638fc-ebf1-4350-bbf5-5ff46a610dfd%40googlegroups.com.

Reply via email to