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.

Reply via email to