我试图把它从这个错误我不明白为什么会发生,因为我上传的文件正确。。。现在正在上传的文件,它显示了我的错误通知:只有变量应该通过引用传递在。。。
<?php
if(isset($_FILES['csv'])){
$errors= array();
$file_name = $_FILES['csv']['name'];
$file_size = $_FILES['csv']['size'];
$file_tmp = $_FILES['csv']['tmp_name'];
$file_type = $_FILES['csv']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['csv']['name'])));// error line
$expensions= array("csv");
if(in_array($file_ext,$expensions)=== false){
$errors[]="extension not allowed, please choose a csv file.";
}
if($file_size > 2097152) {
$errors[]='File size must be excately 2 MB';
}
if(empty($errors)==true) {
move_uploaded_file($file_tmp,"images/".$file_name);
echo "Success";
}else{
print_r($errors);
}
}
?>
<html>
<body>
<form action = "" method = "POST" enctype = "multipart/form-data">
<input type = "file" name = "csv" />// If I change this to name this code does not works,
<input type = "submit" value="Subir archivos"/>
</form>
</body>
</html>
4条答案
按热度按时间eagi6jfj1#
更改此行:
对此:
关于
If I change this to name this code does not works
,这是因为还需要将数组索引更改为name
上FILES
超全局访问数据。nsc4cvqm2#
打电话的时候
end()
,则必须将数组作为变量而不是函数的返回值传递。所以在。。。您可以指定
explode()
然后调用end()
```$file_parts =explode('.',$_FILES['csv']['name']);
$file_ext=strtolower(end($file_parts));
qco9c6ql3#
当您没有传入一个普通变量时,它会发出抱怨。它不喜欢传递函数。
你也已经分配了
$_FILES['csv']['name']
作为$name
,所以就用$name
.把队伍分开:
到
osh3o9ms4#
结束-将数组的内部指针设置为其最后一个元素。分成不同的变量。这应该管用