[Zope] Re: Problems using forms to upload files to Zope

Jonathan dev101 at magma.ca
Tue Nov 15 14:14:49 EST 2005


I don't know why getContentType() doesn't exist anymore?!  a quick 'dir' of a file instance attributes yields:

['close', 'filename', 'fileno', 'flush', 'headers', 'isatty', 'read', 'readinto', 'readline', 'readlines', 'seek', 'tell', 'truncate', 'write', 'writelines', 'xreadlines']

Anybody out there know what happened to 'getContentType'?


However, there is always a work around:  REQUEST['fname'].headers['Content-Type']
should get you what you want.


Jonathan


  ----- Original Message ----- 
  From: Mike Jakowlew 
  To: zope at zope.org 
  Sent: Tuesday, November 15, 2005 1:19 PM
  Subject: [Zope] Re: Problems using forms to upload files to Zope


  Okay I corrected:

  <form action="uploadForm.py" method="post" enctype="multipart/form-data">

  and also tried the getContentType, but I get the error:

  Error Type: AttributeError
  Error Value: FileUpload instance has no attribute 'getContentType'

  ****uploadForm.py****
  def content_type(self):
      return self.getContentType()

  def writeDB():
      # get sql method
      insert=container['insert_fileapps']

      REQUEST=context.REQUEST
      
      department = REQUEST.form.get('department')
      title = REQUEST.form.get ('title')
      filename = REQUEST.form.get('upload_filename')

      upload_contents= content_type(filename)

      if content_type.find('image')!=-1:
          context.manage_addImage(id, file, title)
      else: 
          context.manage_addFile(id, file, title)
      return 'Finished'

      version = REQUEST.form.get('version')
      url = REQUEST.form.get('url')
      ownerapp = REQUEST.form.get('ownerapp')
      isoapp = REQUEST.form.get('isoapp')
      comments = REQUEST.form.get('comments')
      date = REQUEST.form.get('date')

      filename=id
      filename = filename.split('\\')[-1]

      # call it, passing arguments
      insert( department=department, title=title, filename=filename, version=version, url=url, ownerapp=ownerapp, isoapp=isoapp, comments=comments, date=date)

      # return a confirmation page
      page=container['thanks.html ']
      return page()


  writeDB()



  On 11/15/05, Mike Jakowlew <mjakowlew at gmail.com> wrote: 
    Here's what I'm trying to accomplish:

    1. The user fills out a form page with various fields 
    2. The user selects a file to upload
    3. when the user hits submit two things should happen:
          - The file selected is uploaded 
          - all the filled out form fields are written to the database (MS SQL)

    This is my current problem:
    The writting to the database part works fine on it's own, but when combined with the file upload I get this error 

    Error Type: AttributeError
    Error Value: 'NoneType' object has no attribute 'headers'


    My code:

    *********HTML FORM**********
    <html>
    <h1 tal:content="template/title">title</h1> 
    <p>Fill out the form below to update the website with the appropriate info:</p>

    <form action="uploadForm.py">
    <table width="100%"  border="0" cellspacing="0" cellpadding="0"> 
      <tr>
        <td width="16%" height="27" align="right"><strong>Your Dept: </strong></td>
        <td width="84%"><input type="text" name="department"></td> 
      </tr>
      <tr>
        <td height="27" align="right"><strong>Document Title:</strong></td>
        <td><input type="text" name="title"></td> 
      </tr>
      <tr>
        <td height="30" align="right"><strong>Filename:</strong></td>
        <td><input type="file" name="upload_filename" ></td> 
      </tr>
      <tr>
        <td height="28" align="right"><strong>Version of File :</strong></td>
        <td><input type="text" name="version"></td> 
      </tr>
      <tr>
        <td height="28" align="right"><strong>URL:</strong></td>
        <td><input type="text" name="url"></td> 
      </tr>
      <tr>
        <td height="33" align="right"><strong>Owner Approved:</strong></td>
        <td><input type="text" name="ownerapp"></td> 
      </tr>
      <tr>
        <td align="right"><strong>ISO Approved:</strong></td>
        <td><input type="text" name="isoapp"></td>
      </tr> 
      <tr>
        <td height="41" align="right"><strong>Comments: </strong></td>
        <td rowspan="2"><textarea name="comments" cols="60" rows="5"> 
              </textarea></td>
      </tr>
      <tr>
        <td height="85" align="right" valign="top">&nbsp;</td>
        </tr>
      <tr>
        <td height="29" align="right"><strong>Date</strong></td>
        <td><input type="text" name="date"></td>
      </tr>
      <tr> 
        <td height="62" align="right"></td>
        <td><p>
          <input type="submit" id="submit" name="submit" />
          
        </p> 
          </td>
      </tr>
    </table>
    <p>

    </form>
    <hr>
    <p>Return to the <a href="NewsTable">News page</a></p>
    </html>




------------------------------------------------------------------------------


  _______________________________________________
  Zope maillist  -  Zope at zope.org
  http://mail.zope.org/mailman/listinfo/zope
  **   No cross posts or HTML encoding!  **
  (Related lists - 
   http://mail.zope.org/mailman/listinfo/zope-announce
   http://mail.zope.org/mailman/listinfo/zope-dev )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.zope.org/pipermail/zope/attachments/20051115/dc96e6d5/attachment.htm


More information about the Zope mailing list