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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/web2py/d67d40b4-824d-4632-8bce-fb6dc680d31f%40googlegroups.com.