2015-08-30 59 views
-1

我一直在尝试上传图片,但未上传图片。 (当我点击“提交”按钮,就好像它被上传屏幕上的图片附件变空。)PHP不会将我的图片上传到服务器

我已经花了数天,但我想不通的问题。有没有人看到我的代码有问题? (下面的代码是我的代码片段,我已经排除错误消息的代码,以节省空间。)

这里是我的“upload.php的”文件中的代码:

<form action="upload.php" method="post" enctype="multipart/form-data"> 
<div class="form-group"> 
<input type="text" name="title" class="form-control"> 
</div> 
<div class="form-group"> 
<input type="file" name="file_upload"> 
</div> 
<input type="submit" name="submit"> 
</form> 

然后从这里提交的文件去:

if(isset($_POST['submit'])) { 
$photo = new Photo(); 
$photo->title = $_POST['title']; 
$photo->set_file($_FILES['file_upload']); 

则在 “photo.php” 文件接收如下:

public function set_file($file) { 
$this->filename = basename($file['name']); 
$this->tmp_path = $file['tmp_name']; 
$this->type  = $file['type']; 
$this->size  = $file['size']; 

一旦它到达它,如下所示保存在数据库:

public function save() { 
$target_path = SITE_ROOT . DS . 'admin' . DS . $this->upload_directory . DS . $this->filename; 
if(move_uploaded_file($this->tmp_path, $target_path)) { 
if($this->create()) { 
unset($this->tmp_path); 
return true; }} 
+0

“*但它没有被上传并返回空*”。什么*返回*空? – D4V1D

+0

图片附件返回空白,所以它看起来像附加任何图片之前。但是,我收到一个自定义的错误消息,该目录可能没有权限。由于错误信息是自定义的,它确实不能帮助我。 – Brian

+0

也许你应该深入了解触发该错误消息的原因。有帮助。 – D4V1D

回答

0

如果您使用的是Linux服务器,请查看该文件夹的权限。出于测试目的,您可以将其设置为777并尝试安捷伦。

如果您使用的是Mac,则应打开文件夹信息。在底部,您可能会找到许可。将每个人的权限更改为读取/写入。

Windows应该没有权限问题。

+0

我已经将Linux服务器文件夹权限设置为777.它没有任何作用。 – Brian

0

最后,我在一个月后找到了问题的答案。我的程序在Apple Mac和GoDaddy网站托管网站上运行良好,当时有人为我检查了我的程序。但是,它并未在我的新电脑上运行在Windows 10上,而且它并未在我的网站托管站点上运行。

我改变了我的网络托管网站,GoDaddy的网络托管网站,这是在该行的顶部,然后我的程序运行得非常好,我可以轻松地上传我的图片用PHP服务器。

该计划显然在其他PC运行良好,在Windows 10,但它并没有我的相对较新的戴尔PC,这是我在2015年中期收购我也有严重的问题,与我以前的戴尔PC上运行。显然戴尔不是一台好PC。

所以有时候问题不是因为在程序中的错误,但它是因为劣质PC或低劣的网络托管网站。