Thanks Anthony.  It's all working as expected now.

My confusion was between calling the filename through form and calling it
through db.

On Tue, Nov 8, 2011 at 11:33 AM, Anthony <abasta...@gmail.com> wrote:

> The new name is stored in the 'attachment' field of the record inserted.
> After the form.accepts, you can also access it via form.vars.attachment
> (and for backward compatibility, form.vars.attachment_newfilename).
>
> Anthony
>
>
> On Tuesday, November 8, 2011 10:33:07 AM UTC-5, D.P. wrote:
>
>> Thanks for the information Andy.
>>
>> The documentation states that you can retrieve renamed file from the
>> 'attachment' field, but I'm not sure exactly how.  I can get the pointer
>> (<open file '<fdopen>', mode 'w+b' at 0x02549440>) by using
>> request.args.attachment.file and also the temp filename by adding
>> .name--but that shows a local temp destination as opposed to the renamed
>> file in the 'uploads' folder.  How can I get the new name?
>>
>> Any help is appreciated.
>>
>> On Mon, Nov 7, 2011 at 6:51 PM, Anthony <abas...@gmail.com> wrote:
>>
>>> When you upload a file via an upload field, by default it goes into the
>>> /web2py/applications/yourapp/**uploads folder, though you can specify a
>>> different folder via the 'uploadfolder' argument to Field(). The file
>>> itself is renamed (for security reasons) to [tablename].[fieldname].[16-
>>> **char-uuid].[b16encoded-**original-filename].[original-**extension].
>>> This new name is what gets stored in the upload field (the 'attachment'
>>> field in your case). If you want to access the file, you can retrieve the
>>> name from the 'attachment' field, and use that along with the path to the
>>> 'uploads' folder (or whatever folder you set for uploads).
>>>
>>> Note, if you do any processing of the file, there's no need to
>>> "re-insert" anything in the database, as the database merely stores the
>>> filename.
>>>
>>> Anthony
>>>
>>>
>>> On Monday, November 7, 2011 6:07:10 PM UTC-5, D.P. wrote:
>>>>
>>>> Anyone know how to pull an uploaded file from the database locally on
>>>> the server?  I want to do some server-side processing on the file and then
>>>> re-insert it to the database.  I'm not sure I understand how to get the
>>>> local path on the server of the uploaded file.  The static/upload directory
>>>> appends an random ID to the files.  How can I get the path to an uploaded
>>>> file so that I can manipulate it?
>>>>
>>>>
>>>> I'm using a standard model form like the following:
>>>>
>>>> db=DAL('sqlite://storage.db')
>>>> db.define_table('test',
>>>>         Field('package_name'),
>>>>         Field('attachment','upload',**de**fault=''))
>>>>
>>>> My controller:
>>>>
>>>> form=SQLFORM(db.testplug)
>>>>     if form.accepts(request.vars):
>>>>         response.flash='Files uploaded'
>>>>         filename = request.vars.attachment.**filena**me
>>>>         filereference = request.vars.attachment.file
>>>>         print filename
>>>>         print filereference
>>>>     records=SQLTABLE(db().select(**d**b.test.ALL),upload=download)
>>>>     return dict(form=form,records=**records**)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> My view:
>>>>
>>>> {{=records}}
>>>>
>>>> [{{=A('delete all',_href=URL('delete_**storage**'))}}]
>>>>
>>>>
>>>>
>>>>
>>
>>
>> --
>> D.P.
>>
>


-- 
D.P.

Reply via email to