我正在使用适用于PHP的Uploadify jQuery插件上传文件。我坚持的一件事是,我需要能够重命名正在上传的文件,以便我可以将该信息发布到我的脚本,将数据插入到mysql数据库中。任何人都可以建议如何做到这一点?
谢谢, 杰克
答案 0 :(得分:1)
你可以这样做: -
$targetFolder = FCPATH.'/resources/images/users/temp/'; // Relative to the root
if (!empty($image))
{
$time=strtotime("now");
$image['Filedata']['name']=$time.'.jpg';
$tempFile = $image['Filedata']['tmp_name'];
$targetPath = $targetFolder.$image['Filedata']['name'];
// Validate the file type
$fileTypes = array('jpg','jpeg','gif','png'); // File extensions
$fileParts = pathinfo($image['Filedata']['name']);
if (in_array($fileParts['extension'],$fileTypes))
{
move_uploaded_file($tempFile,$targetPath);
echo '1';
}
else
{
echo 'Invalid file type.';
}
}
答案 1 :(得分:1)
首先在uploadify.php中重命名文件名
然后你只需要从uploadify.php文件中返回$ targetPath,就像这样 -
echo $targetPath
无需使用echo'1'
现在你必须得到重命名的文件名。你可以在onUploadSuccess函数中得到它。 onUploadSuccess()接受三个参数(文件,数据,响应),
其中file为您提供通过计算机浏览的文件的实际名称,数据为您提供根据您的要求通过uploadify.php代码生成的重命名文件名。
所以你可以试试下面的代码 -
'onUploadSuccess' : function(file, data, response) {
alert('Renamed file name is - ' + data);
}
我希望这会有所帮助。我的一位朋友告诉我这件事,然后我完成了我的工作:)
答案 2 :(得分:0)
如果您使用uploadify.php,请在函数move_uploaded_files之前,然后更改目标名称。
无论如何你这样做应该有用。如果您想要更详细的答案,请发布您的代码。
答案 3 :(得分:0)
This will put file in new folder with same file name as source file
$source = $_FILES['Filedata']['tmp_name'];
$filename = $_FILES['Filedata']['name'];
$newPath = $folder.'/'.$filename;
rename($source, $newPath);
/*----------------------*/
to have a new filename
function getExtension($path)
{
$result = substr(strtolower(strrchr($path, '.')), 1);
$result = preg_replace('/^([a-zA-Z]+)[^a-zA-Z].*/', '$1', $result);
if ($result === 'jpeg' || empty($result) === true) {
$result = 'jpg';
}
return $result;
}
$source = $_FILES['Filedata']['tmp_name'];
$filename = $_FILES['Filedata']['name'];
$newfileName=$folder."/"."abc".getExtension($filename);
rename($source, $newfileName);