【发布时间】:2016-01-10 23:18:30
【问题描述】:
嘿,我一直收到错误
array_sum() 期望参数 1 是数组
有谁知道我做错了什么?万分感谢。我想我可能在文件夹名称或其他什么地方有一个错误的斜线?我有一个下拉菜单,为我提供文件夹的值,并通过 javascript 提交我的表单,如下所示:
document.getElementById("form").submit();
alert("form submitted");
PHP
<?php
$type = $_POST['Folder'];
$folder = "uploaded/$type";
$allow_types=array("aiff","mp3","wav");
$max_combined_size="10000";
If($_POST['submit']==true) {
//Tally the size of all the files uploaded, check if it's over the ammount.
If(array_sum($_FILES['file']['size']) > $max_combined_size*1024) {
echo "Combined file size is to large";
/ Loop though, verify and upload files.
} Else {
// Loop through all the files.
For($i=0; $i <= $file_uploads-1; $i++) {
//Get the file extension
$file_ext[$i] = strtolower(pathinfo($_FILES['file']['name'][$i], PATHINFO_EXTENSION));
// If the file is a file
If($_FILES['file']['name'][$i]) {
// Randomize file names
$file_name[$i]=1;
while(1){
$file_name[$i] =$file_name[$i]+1;
if exists("$folder/$file_name[$i].$file_ext[$i]")){
break;
}
}
// Check for blank file name
If(str_replace(" ", "", $file_name[$i])=="") {
echo " Blank file name detected";
} ElseIf(!in_array($file_ext[$i], $allow_types)) {
echo "Invalide file type";
} Elseif(file_exists($folder.$file_name[$i].".".$file_ext[$i])) {
echo "File already exists";
} Else {
If(move_uploaded_file($_FILES['file']['tmp_name'][$i],$folder.$file_name[$i].".".$file_ext[$i])) {
echo "success!";
} Else {
echo "upload failure";
}
}
} // If Files
} // For
} // Else Total Size
}
?>
【问题讨论】:
-
array_sum()仅适用于一维数组 -
如果您有多个文件的多个表单输入,
array_sum()将起作用,因此您必须拥有<input type="file" name="file[]" />。
标签: javascript php upload directory