我需要帮助在使用php重命名上传图像文件。我想用用户的用户ID和像userid-1.jpg,userid-2.jpg,userid-3.jpg等计数器重命名我的图像,具体取决于用户上传的图像数量。 到目前为止,我有这个代码,并不能让这个工作..
$id = $GET['id'];
$ds = DIRECTORY_SEPARATOR;
$upload_dir = '../uploads';
if(isset($_POST['submit']) && $_POST['submit'] != null) {
for ($i = 0; $i < count($_FILES['files']['name']); $i++) {
$tempfile= $_FILES['files']['tmp_name'][$i];
if ($tempfile != "") {
$newFilePath = $upload_dir. $_FILES['files']['name'][$i];
move_uploaded_file($tempfile, $newFilePath);
}
}
}
请给我一个关于如何纠正这个问题的想法。
答案 0 :(得分:1)
首先,您要在intval()
$_GET['id']
然后在move_uploaded_file
中修改目标路径:
$id = intval($GET['id']);
$ds = DIRECTORY_SEPARATOR;
$upload_dir = '..'.$ds.'uploads'.$ds;
if(isset($_POST['submit']) && $_POST['submit'] != null) {
for ($i = 0; $i < count($_FILES['files']['name']); $i++) {
$tempfile= $_FILES['files']['tmp_name'][$i];
if ($tempfile != "") {
$newFilePath = $upload_dir.'user_'.$id.'_'.time();
move_uploaded_file($tempfile, $newFilePath);
}
}
}
在移动之前检查文件类型(以便人们不上传php文件......):http://php.net/manual/en/function.exif-imagetype.php
这样您还可以确定文件扩展名必须是什么。
另外,为了确定,不要将你的上传文件夹改为777,只需给予apache所有权就更安全了。
答案 1 :(得分:0)
$newFilePath = $upload_dir. $_FILES['files']['name'][$i];
应更改为您想要的watever名称;作为$newFilePath = "".$upload_dir."/vikas.jpg";