[Zope] Re: Calling a dtml-method that has an extension (Was: Re: [Zope] Creating files on server)

Gitte Wange gitte@mmmanager.org
26 Apr 2001 09:20:26 +0200


On 25 Apr 2001 15:49:19 +0200, Tino Wildenhain wrote:
> Hi Gitte,
> 
> are you sure, the extension .smil is really needed?

Yes - if the RealServer should recognize the file.

> Setting the mime-type in return should be sufficient:
> 
> <dtml-call "RESPONSE.setHeader('application/smilwhatever')">
> 
> of course you have to know how the mime-type is called
> actually ;)

And I don't :-)
Perhaps I could find it ... but then wherer should I change the header ?

> Can you explain in short what you really want to do?
> Do you link to a page which should serve the
> smil-file? Then you have something like
> <a href="/where/you/did/your/smilgenerator_put.smil">

No ... I put a link on a page to the smil-file ... and when you click
the link the content of the smil-file is being played in a RealPlayer

> eventually with several url-encoded parameters after it.
> 
> HTH
> Tino Wildenhain

Regards,
Gitte

> 
> --On Mittwoch, 25. April 2001 11:02 +0200 Gitte Wange <gitte@babytux.dk> 
> wrote:
> 
> > Hi again,
> >
> > For secure reasons I have dropped the idea of creating a physical file
> > on the server. Instead I can create the files dynamically inside Zope
> > and link to the method.
> >
> > I have a method called fncSmileGenerate.smil
> >
> > I call this from another method. Now when doing this I get the following
> > NameError:
> >
> > Error Type: NameError
> > Error Value: fncSmileGenerate
> >
> > The traceback is this:
> > Traceback (innermost last):
> >   File
> > /usr/local/Zope-2.3.0-linux2-x86/lib/python/ZPublisher/Publish.py, line
> > 223, in publish_module
> >   File
> > /usr/local/Zope-2.3.0-linux2-x86/lib/python/ZPublisher/Publish.py, line
> > 187, in publish
> >   File /usr/local/Zope-2.3.0-linux2-x86/lib/python/Zope/__init__.py,
> > line 221, in zpublisher_exception_hook
> >     (Object: Traversable)
> >   File
> > /usr/local/Zope-2.3.0-linux2-x86/lib/python/ZPublisher/Publish.py, line
> > 171, in publish
> >   File /usr/local/Zope-2.3.0-linux2-x86/lib/python/ZPublisher/mapply.py,
> > line 160, in mapply
> >     (Object: index_html)
> >   File
> > /usr/local/Zope-2.3.0-linux2-x86/lib/python/ZPublisher/Publish.py, line
> > 112, in call_object
> >     (Object: index_html)
> >   File /usr/local/Zope-2.3.0-linux2-x86/lib/python/OFS/DTMLMethod.py,
> > line 189, in __call__
> >     (Object: index_html)
> >   File
> > /usr/local/Zope-2.3.0-linux2-x86/lib/python/DocumentTemplate/DT_String.py
> > , line 538, in __call__     (Object: index_html)
> >   File
> > /usr/local/Zope-2.3.0-linux2-x86/lib/python/DocumentTemplate/DT_With.py,
> > line 146, in render
> >     (Object: portal_properties)
> >   File
> > /usr/local/Zope-2.3.0-linux2-x86/lib/python/DocumentTemplate/DT_With.py,
> > line 146, in render
> >     (Object: admin)
> >   File /usr/local/Zope-2.3.0-linux2-x86/lib/python/OFS/DTMLDocument.py,
> > line 182, in __call__
> >     (Object: index)
> >   File
> > /usr/local/Zope-2.3.0-linux2-x86/lib/python/DocumentTemplate/DT_String.py
> > , line 538, in __call__     (Object: index)
> >   File /usr/local/Zope-2.3.0-linux2-x86/lib/python/OFS/DTMLMethod.py,
> > line 182, in __call__
> >     (Object: dspDisplayShow)
> >   File
> > /usr/local/Zope-2.3.0-linux2-x86/lib/python/DocumentTemplate/DT_String.py
> > , line 538, in __call__     (Object: dspDisplayShow)
> >   File
> > /usr/local/Zope-2.3.0-linux2-x86/lib/python/DocumentTemplate/DT_In.py,
> > line 713, in renderwob
> >     (Object: sqlGetShowClips(showid=showid))
> >   File
> > /usr/local/Zope-2.3.0-linux2-x86/lib/python/DocumentTemplate/DT_Util.py,
> > line 334, in eval
> >     (Object: fncSmileGenerate.smil(clipid=clipid))
> >     (Info: fncSmileGenerate)
> >   File <string>, line 0, in ?
> > NameError: (see above)
> >
> > It seems to me that Zope won't recognize the .smil extension. Is it
> > possible in any way to make it do so ?
> > I need the extension because of RealServer.
> >
> > Regards,
> > Gitte
> >
> >
> > On 24 Apr 2001 18:27:00 +0200, Tino Wildenhain wrote:
> >> Hi Gitte,
> >>
> >> the built in "open()" is a high security risk and therefore not
> >> exposed to pythonmethods. For this you should stick to
> >> Chris' solution with external method. However keep sure
> >> your script cannot be tricked to write files anywhere on the filesystem!
> >> Dont use + to concenat pathname parts. Use os.path.join() instead.
> >> Try os.path.split(os.path.normpath(os.path.join(part,of,your,pathname)))
> >> to see the result of the concenation and if its still in the directory
> >> you want it to be. (someone could feed '../../name' into your script)
> >>
> >> HTH
> >> Tino
> >>
> >> --On Dienstag, 24. April 2001 13:48 +0200 Gitte Wange
> >> <gitte@mmmanager.org>  wrote:
> >>
> >> > On 24 Apr 2001 12:31:08 +0100, Chris Withers wrote:
> >> >> Gitte Wange wrote:
> >> >> >
> >> >> > Okay maybe I didn't express myself very clear.
> >> >> > Can anyone tell me how I - in somw way - create a file on the server
> >> >> > through Zope ?
> >> >>
> >> >> On the filesystem? LocalFS might be right, read the documentation for
> >> >> it (it can eb a bit tricky to find the useful bits from what I
> >> >> remember ;-)
> >> >>
> >> >> Failing that, use an external method:
> >> >>
> >> >> def write_stuff(self,path,stuff):
> >> >>    f = open(path,'w')
> >> >>    f.write(stuff)
> >> >>    f.close()
> >> >>
> >> >> cheers,
> >> >>
> >> >> Chris
> >> >
> >> >
> >> > I have tried the following:
> >> > I added a script(Python):
> >> > argument list: server, mediafile, tcin, tcout, id, clipname
> >> >
> >> > The code looks like this:
> >> > fil = open("/root/Real/Content/" + id + clipname + ".smil", 'w')
> >> > #Open file
> >> > text = "<smil>\n\t<body>\n\t\t<audio src=\"rtps://" + server + "/" +
> >> > mediafile + " clip-begin=\"" + tcin + "\" clip-end=\"" + tcout +
> >> > "\">\n\t</body>\n\n</smil>"
> >> > fil.write(text)
> >> > fil.close()
> >> >
> >> > Now when running this script I get a NameError on "open".
> >> > What is wrong ?
> >> >
> >> > Regards,
> >> > Gitte
> >> >
> >> >
> >> > _______________________________________________
> >> > Zope maillist  -  Zope@zope.org
> >> > http://lists.zope.org/mailman/listinfo/zope
> >> > **   No cross posts or HTML encoding!  **
> >> > (Related lists -
> >> >  http://lists.zope.org/mailman/listinfo/zope-announce
> >> >  http://lists.zope.org/mailman/listinfo/zope-dev )
> >>
> >>
> >>
> >
> >
> >
> 
> 
> 
> 
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )