PS : I' m answering directly over the Google interface ....how can I make
it plain text ?
Thanks dude for your help ...the significant help was the :
enctype="multipart/form-data"
I didn't put that in my template and the whole code get crazy cause of that
:)
So I'm putting my code here for those who wants to reuse it or for better
suggestions :
The Python class :
class ProjectPlugin(Component):
implements(INavigationContributor, IRequestHandler, ITemplateProvider)
# INavigationContributor methods
def get_active_navigation_item(self, req):
return 'helloworldv2linkIdentifier'
def get_navigation_items(self, req):
yield ('mainnav', 'helloworldv2linkIdentifier',
tag.a('Gantt Export', href=req.href.myapppp()))
# IRequestHandler methods
def match_request(self, req):
return re.match(r'/myapppp(?:_trac)?(?:/.*)?$', req.path_info)
def process_request(self, req):
# add the implements and chek the imports ! and the indents
data = {}
if req.method=='POST':
if 'DispFile' in req.args:
myFile=req.args.get('Fily','value')
data.update({
'myFile': myFile
})
dummy=req.args.get('Fily','value').filename
data.update({
'dummy': dummy
})
# file reading
mystream = myFile.file.read()
# This tuple is for Genshi (template_name, data, content_type)
# Without data the trac layout will not appear.
return 'GanttTemplate.html', data, None
# ITemplateProvider methods
# Used to add the plugin's templates and htdocs
def get_templates_dirs(self):
from pkg_resources import resource_filename
return [resource_filename(__name__, 'templates')]
def get_htdocs_dirs(self):
return []
The GanttTemplate.html file :
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:py="http://genshi.edgewall.org/"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="layout.html" />
<head>
<title>Gant Export Tool</title>
</head>
<body>
<form id="GanttForm1" name="inputForm2" action="" method="POST"
enctype="multipart/form-data">
<fieldset id="operations" >
<legend >
Configuration
</legend>
<label for="Fily">URL :</label>
<input type="file" name="Fily" value=""/><br /><br />
Dummy variable = $dummy <br/>
<input type="submit" name="DispFile" value="Display the
file"/><br /><br />
</fieldset>
</form>
<br /><br /><br /><br /><br />
</body>
</html>
Just one more question :
How can I redirect the modified stream to a window which ables the user to
choose a file name and emplacement ?
Thanks a lot !
On Wednesday, September 19, 2012 10:14:50 AM UTC+2, cyberbrain wrote:
>
>
>
>
> I'm trying to write a plugin for trac <http://trac.edgewall.org/> but I'm
> missing sthg.
>
> I'm trying to upload a file to the sever using the POST method this a
> simplified example :
>
> <form id="MyForm" name="input" action="" method="post">
> <label for="attachment">URL :</label>
> <input type="file" name="GanttFile" value=""/>
> </form>
>
>
>
> Now I'm trying to process the uploaded file ,read it and do some
> modifications than save it or ask the user to choose where he wants to save
> the file (export some data from the trac database)...I'm still blocked at
> this level :
>
> def process_request(self, req):
> data = {}
> if req.method=='POST':
> file=req.args.get('GanttFile', 'value')
> # and now I'm blocked !! how can I modify this file
> # and then redirect or save it !
>
> and if I try to display the content of the variable *file* I just get the
> name of the file not all the path ? By doing something like this :
>
> <input type="text" name="file" value ="$myfile" />
>
> and in my source code :
>
> def process_request(self, req):
> data = {}
> if req.method=='POST':
> myfile=req.args.get('GanttFile', 'value')
> # display the content
> data.update({
> 'myfile': myfile
> })
>
>
> This will display only the file name ...I need the absolute path to do
> some process !
>
> I'm I missing sthg. ? is that the right way ?
>
> Thanks !
>
>
--
You received this message because you are subscribed to the Google Groups "Trac
Users" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/trac-users/-/Ek4t53q5hTUJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/trac-users?hl=en.