上传文件前删除特殊字符

时间:2012-08-09 18:50:43

标签: php string

使用下面的代码我通过html页面上的表单获取图像,在其中进行一些切割并添加另一个图像,它工作得很好。

我在html表单中获得的图像名称中遇到特殊字符问题...

简而言之,在您上传,裁剪图片,移动图片等之前,我必须处理他们的名字......删除空格,删除重音等。

我尝试使用某些功能但没有成功..有人可以帮忙吗?

这是我的代码:

<?php

require( "./lib/WideImage.php");

// Example of accessing data for a newly uploaded file
$fileName = $_FILES["uploaded_file"]["name"]; 
$fileTmpLoc = $_FILES["uploaded_file"]["tmp_name"];
// Path and file name
$pathAndName = "cartelas/cart".$fileName;
// Run the move_uploaded_file() function here
$moveResult = move_uploaded_file($fileTmpLoc, $pathAndName);
// Evaluate the value returned from the function if needed


$image = WideImage::load($pathAndName);

$unh = WideImage::load("unh11.png");

$crop1 = $image->crop("25", "50", 111, 132);


$out1 = $crop1->merge($unh,'middle','middle');

$pathAndName1 = "unha-1-".$fileName;

$crop1->saveToFile('./cartelas/estampa'.$pathAndName1);

$out1->saveToFile('./cartelas/'.$pathAndName1);

echo "Imagens geradas:<BR>";
echo "<img src=./cartelas/estampa$pathAndName1><img src=./cartelas/$pathAndName1>";
?>

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您想在php端执行此操作,您可以使用文件名执行任何操作。如果您不必具有完全相同的名称,则可以使用rawurlencode()或base64_encode();甚至从名称的md5()哈希。这应该可以解决奇怪的名字或特殊字符的问题。

如果你需要存储所有这些文件,你可以$newfilename = md5($filename) . '_' . time();,这样它们就是唯一的。您还可以添加用户ID或类似内容。

答案 1 :(得分:0)

imclickingmaniac如果这样做,它将失去扩展名!所以做...

<?php
$ext=pathinfo($_FILES["file1"]["name"], PATHINFO_EXTENSION);
$fileName=md5($fileName);
$fileName="$fileName.$ext";
?>