2012-05-16 80 views
1

我有一個很奇怪的問題。我有一個事件集用於修改我創建的具有文件字段的內容類型。將要上傳的文件是一個XLS文件,我想在本地保存一個副本。在本地保存一個XLS文件

現在,這裏是奇怪的地方。當我處於前景模式時,當事件被觸發時,文件保存沒有任何問題。然而,當我正常運行實例(./bin/instance start)時,我得到一個IOError(見下文)。然而,無論我處於前景還是後臺模式,我都試圖創建一個測試「Hello World」.txt文件,該文件運行良好。

有什麼想法?預先感謝!

Patrick Patrick

我在SLES 10服務器上使用Plone 4.0.1。

錯誤:

...   
Module patrick.cm.content.events, line 95, in q_changed 
IOError: [Errno 2] No such file or directory: u'process/test-file.xls' 

代碼:

def q_changed(obj, event): 
    if obj.xls_file.getSize() > 0:      
     filename = getattr(obj.xls_file, 'filename') 

     save_questionnaire = open('process/%s' % (filename), 'wb')  #Line 95 
     q_data = str(obj.xls_file.data) 
     save_questionnaire.write(q_data) 
     save_questionnaire.close() 

此代碼:

def q_changed(obj, event): 
    save_questionnaire = open('process/test.txt', 'wb')  
    save_questionnaire.write('Hello World!') 
    save_questionnaire.close() 
+1

'os.getcwd()'的值是否在工作實例和失敗實例之間改變? – sarnold

+0

始終使用絕對路徑並確保用戶進程正在運行,因爲它可以訪問您正在寫入的位置。 – vangheem

+0

運行在fg中的實例和運行bin/instance start的實例在工作目錄上存在差異。這很可能是你問題的一部分。 –

回答

0

前景模式和背景模式有不同的工作目錄。

解決方案:使用絕對路徑!