文件上传php与文件数组

时间:2012-04-04 07:16:29

标签: php

我尝试将文件上传到我的服务器也发送到我的数据库。

但是,我无法上传它们。

我可以通过以下代码看到我的两个文件,

echo $_FILES['file']['name'][0];
echo $_FILES['file']['name'][1];


$fileName = $_FILES['file']['name'][0];
$add = "img01.imgsinemalar.com/images/haber_anasayfa/" . $fileName;

if (move_uploaded_file($_FILES[file_up][tmp_name], $add)) {
    NCore::db('NEWS')->insertAsArray(array('CONTENT' => $_POST['TvSpotdesc'], 'ADD_DATE' => $date, 'TITLE' => $_POST['newsTitle'],IMAGE_MAIN => $add))->execute();
    echo "Haber başarıyla gönderildi.";
} else {
    echo "Failed to upload file Contact Site admin to fix the problem";
}else {
    echo $msg;
}

但是上面的代码没有上传我的文件,它会直接转到else语句,为什么?

  

无法上传文件请联系网站管理员以解决问题

2 个答案:

答案 0 :(得分:1)

您的代码应输出两个通知并从此行发出警告:

if (move_uploaded_file($_FILES[file_up][tmp_name], $add)) {

这两个通知是因为您没有引用file_uptmp_name以及警告,告知您move_uploaded_file失败的原因as documented。您应该查看日志以便自己查看这些日志(开发时没有看到任何错误消息并不好玩)。

原因失败的原因是您无法将文件移动到远程服务器 - $add不是本地路径。

答案 1 :(得分:0)

$_FILES[file_up][tmp_name]重命名为$_FILES['file']['tmp_name']

根据您粘贴的代码,没有file_up这样的变量。此外,文件只能存储在同一台服务器上。所以改为相对路径,如/home/www/myapp/images/而不是服务器名称。