这是我的php文件的一部分,负责重命名文件并上传
if ( 0 < $_FILES['file']['error'] ) {
echo 'Error: ' . $_FILES['file']['error'] . '<br>';
}
else {
$filename=$_FILES['file']['tmp_name'];
$extension=end(explode('.', $filename));
$newfilename=$first_name . '_' . $last_name.'.'.$extension;
move_uploaded_file($filename, 'uploads/' .$newfilename);
}
我不确定文件没有上传的原因?
答案 0 :(得分:1)
您不能直接在end()
函数中传递explode返回的数组。同时验证uploads
文件夹是否应具有有效的read/write
权限。
您尝试从$_FILES['file']['tmp_name']
获取扩展,这是错误的。
end() - &gt;参数¶数组。该数组通过引用传递 因为它是由函数修改的。这意味着你必须通过它 实数变量而不是仅返回数组的函数 实际变量可以通过引用传递。
请参阅this以供参考。
试试这个:
$filename=$_FILES['file']['name']; //this param contains name of file
$arr = explode('.', $filename);
$extension=end($arr);
$newfilename=$first_name . '_' . $last_name.'.'.$extension;
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' .$newfilename);