簡體   English   中英

在Drupal中處理文件上傳

[英]Handling file uploads in Drupal

我一直在尋找各種解決方案,以解決我認為是一個相當普遍的問題,但是我仍無法以令人滿意的方式解決它。

我希望實現的功能是,用戶可以上傳新文件或選擇現有文件以重復使用它們。

到目前為止,我一直在使用filefieldfilefield_sourcesimceckeditor模塊的組合。 我想ckeditor對於該解決方案並不是很重要,但是我需要能夠以某種方式嵌入存檔中的圖像,而這是通過IMCE完成的。 由於我不希望從文件瀏覽器訪問所有內容,因此創建了一個子目錄並在IMCE設置中設置了對其的完全訪問權限,因此將其稱為default/files/site

只要所有文件處理都是通過IMCE完成的,此方法就可以正常工作,但是當我直接從文件字段上傳文件時,我的文件最終以default / files根目錄結尾,因此我為字段設置了文件夾,例如default/files/site/movies允許使用.flv格式的default/files/site/movies 只要我沒有嘗試通過IMCE訪問文件,此方法就可以正常工作。 似乎無法通過IMCE訪問由filefield創建的文件夾?

我也需要支持大型上傳(200MB +),但是根據我在其他項目中的經驗,允許通過FTP上傳文件通常是救命的,但是據我了解,IMCE不支持不支持文件的上傳。通過Drupal以某種方式上載,因為它們不存在於數據庫中(提示消息: The selected file could not be used because the file does not exist in the database.

我知道我對我的問題並沒有明確的問題,但是我需要以某種方式快速解決這個問題。 我最好如何解決這個問題? 我知道我不是第一個遇到此問題的人,但是我還沒有找到一個好的穩定的解決方案。 我想念什么?

好吧,我個人並不熟悉IMCE,但是如果您需要將通過ftp上傳的文件添加到文件表中,那么我的沖動就是編寫一個小模塊,然后允許用戶單擊按鈕並開始批處理過程。 (這是我假設您使用的是Drupal 6,因為批處理api在5中不存在。)

然后,該批處理過程將遍歷相應目錄中的所有文件,我假設您已將文件上傳到該文件,並使用file_copy() (來自Drupal的文件API)將文件復制到default / files / site,然后可以將所述文件添加到文件表中,使用drupal_write_record()實際上非常簡單。

它甚至可能不需要使用批處理api-如果您僅上傳10-30個非常大的文件或200-300 MB的文件,這會有些問題。

對於使用批處理api,我將看一下http://drupal.org/node/180528-這是批處理api工作原理的一個相當基本的示例,基本上包括告訴api您要繼續調用function_a。 ,然后在function_a內部設置上下文數組中的進度,直到完成為止,此時批處理過程結束。 然后,只要有人通過ftp上傳文件,然后點擊網站上的按鈕即可移動和注冊文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM