Hi Gitte, are you sure, the extension .smil is really needed? 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 ;) 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"> eventually with several url-encoded parameters after it. HTH Tino Wildenhain --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 )