0

以下のコードを使用して、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>";
?>

ありがとうございました!

4

2 に答える 2

1

PHP側でやりたい場合は、ファイル名で何でもできます。まったく同じ名前にする必要がない場合は、rawurlencode() または base64_encode(); を使用できます。または名前からの md5() ハッシュさえも。これにより、奇妙な名前や特殊文字の問題が解決されるはずです。

このすべてのファイルを保存する必要がある場合は$newfilename = md5($filename) . '_' . uniqid();、それらを一意にすることができます。ユーザーIDなども追加できます。

于 2012-08-09T20:20:07.120 に答える