注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

John's Blog

天空,有梦就可以飞翔!

 
 
 

日志

 
 
关于我

刚走出校园的毕业生,就读计算机网络专业,对网站建设有一定的基础。开始探求Drupal已有一段时间,对Drupal的发展很是看好。现就职于深圳慧衡科技有限公司(intematrix.cn),它是一家专门服务于中国及海外中小企业的网络营销分析和优化服务提供商。 QQ交流群:44581272

网易考拉推荐

Drupal中修改Filefield Sources中的IMCE上傳方式  

2010-03-03 18:39:24|  分类: drupal学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

無論任何因素,我們都有可能無法透過HTTP的方式上傳檔案(一般都是因為檔案過大)。此時,您會想:那就改用FTP的方式上傳檔案好了。然而,當您透過FTP的方式上傳檔案時,Drupal是無法得知您所上傳的檔案,換言之,您透過FTP上傳的檔案相關資料並未存放於資料庫的files表中。

倘若透過FTP上傳的檔案資料沒有存在files表中時,因為filefield會將nid與fid做連結,所以透過FTP上傳的檔案也就無法用在filefiled中了。

以下是我個人的解決之道,供您參考:

大概的理念是,透過imce取得伺服器中的檔案,如果被選中的檔案尚未存在於資料庫中,則透過field_file_save_file將相關資料儲存於資料庫中並複製檔案到設定好的目錄中。

作法:修改imce.inc檔案(filefield_sources/sources目錄中)。

大約在130行原本的程式:

DE<   else {     form_error($element, t('The selected file could not be used because the file does not exist in the database.'));                }  DE<

 

修改為:

DE<  
else {          
//original code          
//form_error($element, t('The selected file could not be used because the file does not exist in the database.'));           
  $field = content_fields($element['#field_name'], $element['#type_name']); //取得已經設定好的檔案存放目錄    
  $file = field_file_save_file($file_path, array(), filefield_widget_file_path($field)); //複製檔案並儲存檔案資料於資料庫中。    
  $item = array_merge($item, $file); //將檔案相關資料傳回給filefield   }  DE<

這樣,我們就可以透過IMCE這個方便的檔案瀏覽器取得透過ftp上傳的資料,並應用於Filefield中了。

 

文章来自:Drupal水隆投

  评论这张
 
阅读(283)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016