可以在服务器中重命名上传的文件以避免名称碰撞? -- 7 领域 和 files 领域 drupal 相关 的问题

Can uploaded files be renamed in the server to avoid name collision?


2
vote

问题

中文

我希望我的网站托管一些图像。用户能够将图像上载为内容类型。

如果两个用户创建内容并使用完全相同的名称(MyImage.png)创建内容并上传图像,则旧图像文件是否会在服务器中覆盖(因此,两个内容条目都将最终包含相同的图像文件)?

如果是的,它是相当令人不安的。所以现在我想知道:有一个模块是否重命名上传的文件,以便它不会与其他上载的文件碰撞?

我已经搜索了一对夫妇,不完全测试它们,因为它们似乎添加了太多的额外功能,我只是不需要:我喜欢drupal 7附带的默认文件上传系统。我只希望它避免名称碰撞(如果发生)。

英文原文

I want my site to host some images. The user is able to upload images as a content type.

If two users create content and upload images with the exact same name (myImage.png), will the older image file be overwritten in the server (and therefore both content entries would end up with the same image file)?

If yes, it is rather troubling. So now I wonder: is there a module that renames the uploaded file so it will not collide with other uploaded files?

I have searched for a couple ones, not exactly tested them since they seem to add too much extra functionality I just don't need: I like the default file uploading system that comes with Drupal 7. I just want it to avoid name collisions (if it happens).

     

回答列表

5
 
vote
vote
最佳答案
 

您不需要担心图像的重命名; Drupal默认为您提供:)
让我们说如果你上传 image1.jpg ,又称其他人都是相同的第二个文件将重命名 998887666

 

You don't need to worry about the renaming of the images; Drupal does that for you by default :)
Lets say if you upload image1.jpg, and again someone else does the same the second file will be renamed image1_0.jpg.

 
 
2
 
vote

您可能会发现有关如何在文件路径模块中更改文件名的一些信息。

文件(字段)路径允许您使用基于令牌的替换模式自动排序和重命名上传的文件以维护一个漂亮的清洁文件系统。

 

You might find some information about how to code changing file names in the File Path module.

File (Field) Paths allows you to automatically sort and rename your uploaded files using token based replacement patterns to maintain a nice clean filesystem.

 
 
       
       
0
 
vote

还可以为您的文件设置一个模式,随机或时间戳部分,它永远不会复制

您可以使用 hook_file_persave

  function yourmodulename_file_presave($file) {   $parts = pathinfo($file->filename);   $file->filename = 'mystring_'.$file->uid .'_'. $file->timestamp . '.' . $parts['extension']; }   
 

Also you can set a pattern for you files and with random or timestamp part it never duplicated

you can use hook_file_persave

function yourmodulename_file_presave($file) {   $parts = pathinfo($file->filename);   $file->filename = 'mystring_'.$file->uid .'_'. $file->timestamp . '.' . $parts['extension']; } 
 
 

相关问题

0  如何构建与清洁和“脏”URL兼容的链接?  ( How to build links compatible with clean and dirty urls ) 
我有一个不支持Clean URL的开发网站,我的生产网站确实支持它们。 如果我在节点的主体中构建链接,如: <a href="view-something/4,7">View something</a> 这在我的生产网站上显示了OK,但在开发网站时提供了404个。 如何构建普遍的良好网址? ...

1  在Drupal 7中为同一图像提供几个下载选项  ( Provide several download option for same image in drupal 7 ) 
有人会有什么想到如何在Durpal 7中创建同一图像的几个下载选项。 示例网站是: http://www.travesto.com/content/101jpg -Anime-Airmated 其中启用了几个下载选项。 我想为我的生日照片创建类似的选择。我认为可以是视图模块在这里使用。但不确定。如果有人有任何想法这样...

0  由于open_basedir限制,我无法启用最简单的最简单  ( I cant enable simpletest due to open basedir restriction being in force ) 
由于我的Drupal7 Installaton驻留在运行PHP 5.2.12的Linux服务器上,我无法启用SimpleTest。我在php.ini文件下找到了该指令,但它已经在那里发表评论。 当我尝试在我的模块配置中启用最简单时,我会看到以下错误: "测试框架需要禁用PHP Open_Basedir限制。检查您的W...

0  使用答案模块服务API奇怪  ( Service api acting strange with answers module ) 
我目前正在开发一个Android应用程序,它使用休息来与Drupal沟通 我已经设置了服务模块,并使用正常的"帖子" 内容类型节点 但是,如果我发布 question 节点从答案模块,它不起作用。 所以,我发布了这样的json字符串: {"node": { "title":"REST question", ...

1  如何在网站处于维护模式时启用Google Analytics?  ( How to enable google analytics while site is in maintenance mode ) 
我想知道有多少用户访问当前处于维护模式的网站。我已经安装了Google Analytics模块,但它没有将Google跟踪代码添加到维护页面,因此Google Analytics说"跟踪未安装" 。 如何在站点处于维护模式时启用它? ...

2  在User / X /和User / X /编辑页面上显示UID  ( Displaying uid on user x and user x edit page ) 
我想在 user / x 和用户/ x /编辑 uid (只读)用户的 uid (只读)页面。 通过使用下面的函数,我设法显示 user / x /编辑页面上的 uid 。 function my_module_form_user_profile_form_alter(&$form, &$form_state, ...

1  表单构建器模块不在Drupal 7中工作  ( Form builder module not working in drupal 7 ) 
可以有人确认是否表单构建器模块正在工作。我查看 .module ,似乎路径仍在使用Drupal 6格式。 ...

1  视图:公开过滤器 - 在特定日期集之间过滤掉结果  ( Views expose filter filter out results between a specific set of dates ) 
我有一个视图(内容类型= CAR,创建日期过滤器"公开" 和某些字段以显示在表中的结果)。 是否有任何方法可以在使用过滤器选择的日期中显示未创建的所有节点? 谢谢 ...

2  Drupalgetajax的Drupal测试  ( Drupal testing with drupalgetajax ) 
我正在努力为ajax api写一些自动测试,并获得奇怪的结果。如果我直接查看页面,我会看到以下输出,由drupal_json_output发送: {"guid":"8e2a179e-c901-8744-05fc-e80de9500dd6","success":1} 我的单元测试命中相同的URL。这是测试功能...

6  如何使用视图列出与给定介绍2配置文件相关联的用户?  ( How can i list the users who are associated with a given profile2 profile using ) 
我有一个具有组织内容类型的站点。每个组织都有一个关联的资料2配置文件,该配置文件包含对描绘组织层次结构的分类词汇表的引用。当用户注册时,它们会呈现与它们所属的组织关联的给定配置文件2配置文件。 我正在创建一个需要显示以下内容的视图中的报告: 组织 层次结构 用户 我可以建立组织和配置文件2的简介和配置...

1  #ajax回调未在选择(或其他)字段上射击  ( Ajax callback not firing on select or other field ) 
我有完全相同的问题,如此: http://drupal.org/node/1335568< / A> 也就是说,要转发OPS问题,我有代码如下所示。但是,当我对选择框进行更改时,"更改" 事件不会触发。随着回调没有运行。 这个模块的作者回答了但坦率地说,他的反应对我来说没有意义。 他的回复: "这些不是我必须具体...

2  Drupal安装无需设置“(MultiSite)运行  ( Drupal installation running without settings php multisite ) 
我们打算实现的是设置drupal.abcd.com作为MultiSite Setup的主要安装,ABCD.com,XYZ.com,PQRS.com是多站点设置的子站点。 主安装(drupal.abcd.com)应包含默认的Drupal安装(使用Bartik主题),ABCD.com应该具有内容的ABCD主题。 dr...

2  Drupal视图:使用分类术语创建3列主页  ( Drupal views create 3 column home page with taxonomy terms ) 
我希望为我的网站创建一个3栏主页设计,将3种不同的分类类型(新闻,培训警报和建议)分离为3个单独的列。每列不仅显示出分类项,而且会提取与它相关联的内容(例如,每个项目的预告片)标记为"新闻" )。 我对Drupal主题并不是很熟悉,但目前我已经能够使用Bartik主题使用我的网站来完成我想要的一切。是否有任何方法可...

0  我可以从自定义模块中挂钩表单吗?  ( Can i hook a form from a custom module ) 
我的表单函数称为 mymodule_join_form 在myModule中, differentmodule_form_mymodule_join_form_alter / code> 99887661 。但是,它没有被称为(我把'回声'你好'; die;) 我可以使用 form_alter 使用 if (form...

1  如何在节点表单中使用多值,全日历日期选择器?  ( How to use multi value full calendar date picker in node form ) 
用户先前报告的车辆在Excel表中使用格式化,看起来像一个完整的月份日历。在他们使用车辆的天数上单击"日历" 标记的Visual X(通过宏)中的单元格,并在再次单击时清除了单元格。 转换为Drupal节点表单现在每天只需三次点击。 "日期使用" 字段为多值(并不总是连续日期范围),因此它们必须: 单击文本框以启动...

1  如何实现实体引用,对象和CRUD操作?  ( How to implement entity reference objects and crud operations ) 
我想创建一个对象,命名为 xml 。 XML对象具有名称(字符串)和内容本身(以XML格式为单位)。 CRUD操作应支持如下: 我想让每个用户能够 c reate, u pdate,以及 d xml对象的弹性实例。 这些实例只能被他们的所有者看到( R EAD)。 我还希望能够在保存,删除等之前以数据编...

1  新用户注册字段  ( New user registration fields ) 
我有一个大约30名成员的网站,但我刚刚在注册上添加了一个新的强制性字段。我希望旧成员也被迫填补这一点。这是什么最好的方法? ...

0  如何为Apache Solr模块构建自己的视图  ( How to build my own view for apache solr module ) 
在Drupal 7中成功集成Apache Solr模块并显示结果II,发现它正在使用核心搜索模块的视图文件(搜索-excuest.tpl.php&amp; search-sexult.tpl.php)显示结果。 如何使用我的自定义文件类似于(搜索结果.TPL.php&amp; search-sexult.tpl.ph...

0  主题建议或主题被覆盖  ( Theme suggestion or theme overridden ) 
我有两个模板覆盖 - user-profile.tpl.php 和视图 - 视图 - myviewname.tpl.php 。 要生效这些模板,我必须将它们放入默认的主题中。 主要问题是我使用默认主题"bartik" ,我必须将它们放入"主题/ bartik /模板/" 以让Drupal主题系统知道它们。 我...

4  如何在表单提交后将用户重定向到上一页?  ( How to redirect user to previous page after form submit ) 
我可以在向任何另一个页面添加节点后重定向用户,但想要将它们重定向到他们链接的上一页。现在我使用以下代码: function user_add_node_form_foto_node_form_alter(&$form, &$form_state, $form_id) { $form['actions']['s...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.