【问题标题】:jQuery ajax php rename part of a file namejQuery ajax php 重命名文件名的一部分
【发布时间】:2011-12-01 17:36:07
【问题描述】:

在前端,我让用户重命名他的任何图像。这是通过 javascript 提示获取新名称、jQuery ajax 和 php 完成的。当文件被重命名时,它必须对 2 个文件生效,如下面的链接所示。网址中的1 是动态的。是用户ID。问题是我只想替换文件名中的product,而不是后面的_1317804260。在第二个链接中,文件名前面有thumb_。所以我们只想用新的重命名替换product。解决这个问题,似乎我需要多次使用 explode() 才能完成工作。有没有更简单的方法来做到这一点。

http://domain.com/userfiles/1/images/product_1317804260.gif
http://domain.com/userfiles/1/images/thumbnails/thumb_product_1317804260.gif

所以基本上如果新名称是newname,文件的最终输出应该是

newname_1317804260.gif
thumb_newname_1317804260.gif

【问题讨论】:

  • 您希望结果包含整个 URL 还是只有最后一部分?

标签: php javascript jquery ajax rename


【解决方案1】:

JS:

var tmpName = "product_1317804260.gif".split("_")
var newName = "newname" + "_" + tmpName[1]

PHP:

$tmpName = explode("_", "product_1317804260.gif");
$newName = "newname" . "_" . $tmpName[1];

【讨论】:

  • 什么是包含下划线的文件名。我们如何告诉它寻找最后一个。
  • 然后使用 tmpName[tempName.length]
  • 谢谢,在这种情况下,我还需要获取路径的一部分。我试过这样拆分,但它不起作用。这是为什么 。 var $x = '/1/images/Oil_and_gas_icon.gif'; alert($x.split("/")[0]);
  • 元素零在第一个斜杠之前,它是空的。
  • alert($x.split("/")[0]) = "1" 对我来说
【解决方案2】:
$oldName = "http://domain...product_userid.gif";

$newName = "what the user entered";

$parts = explode('/', $oldName);
$user_path = $parts[3] . '/' . $parts[4]; // it will contain userfiles/1

$parts = explode("_", $oldName);

$product_name = $new_name . "_" . end($parts);
$thumb_name   = "thumb_" . $product_name;

【讨论】:

  • 这行得通。但在这种情况下,我还需要来自 url /userfiles/1/ 的这个。有什么好的方法来获得它
  • 我已经用该信息更新了我的答案。这就是我之前问你是否只需要最后一部分或更多的原因。
猜你喜欢
  • 2020-01-29
  • 2010-11-26
  • 2011-12-03
  • 1970-01-01
  • 2018-12-31
  • 1970-01-01
  • 2013-12-05
  • 2020-06-04
  • 1970-01-01
相关资源
最近更新 更多