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/d67d40b4-824d-4632-8bce-fb6dc680d31f%40googlegroups.com.

Reply via email to