2014-02-24 80 views
-1

我想要一个用户上传他的简历,该简历将被保存到我的服务器上并发送一封包含该链接的电子邮件。但由于某种原因文件没有上传。请帮忙。该文件没有上传到服务器上

这里是我的代码:

<?php 
//This function separates the extension from the rest of the file name and returns it 
function findexts ($filename) 
{$filename = strtolower($filename); 
$exts = split("[/\\.]", $filename); 
$n = count($exts)-1; 
$exts = $exts[$n]; 
return $exts;} 

//This applies the function to our file 
$ext = findexts ($_FILES['uploaded']['name']); 

//This line assigns a random number to a variable. 
$ran = rand(); 

//This takes the random number (or timestamp) you generated and adds a . on the end 
$ran2 = $ran."."; 

//This assigns the subdirectory you want to save into... make sure it exists! 
$target_path = "/resume/"; 

//This combines the directory, the random file name, and the extension 
$target_paths = $target_path . $ran2.$ext; 

move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path); 

$file_name="http://www.mydomain.com".$target_paths; 

?> 
+0

检查文件夹权限?你得到什么错误? – j08691

+0

没有错误显示。直接向我提供的电子邮件地址发送一封邮件,我在服务器上创建的文件夹显示为空,并且你说了什么权限,我很抱歉,我对此很陌生 – Himani

+0

该文件夹需要来自用户的写入权限web服务器运行如下: – j08691

回答

0

除非它是一个窗口(原谅我)中,文件或文件夹的权限是这方面的第一个地方。 Un * x-like系统可以(读取:非常严格)。

的方式,我通常解决这个问题我开发的机器上,就是:

  • 自己添加到Web服务组,使之成为我的主(如根:$ usermod命令-g Web服务组的用户名)
  • 将我的用户和web服务组设置为所有文件(根目录webroot:$ chown -R 755 ./*)
  • 将775应用于所有文件和文件夹(项目webroot中的root:$ chmod -R 775 ./*)

此作品适用于开发环境。我不能说我完全在现场环境中推荐它。在现场环境中更安全的是:webservice-user所拥有的文件夹:webservice-group(基于debian-based:www-data:www-data),mod应该是755(webservice具有完全访问权限,其余只能执行并阅读)。

0

没有此文件类型的验证,没有file_exist等

如果你想随机文件名,我要么校验文件内容并使用它作为一个文件名,或有一个循环(而file_exists => gen_random)。虽然这会慢得多,所以您应该考虑使用数据库作为跟踪文件/文件所有者的方式。

那就是说,你必须检查上传的内容,这样人们才不会上传恶意脚本到你的网页。您还应该使用错误处理。

如果您出于某种原因希望运行此脚本 - 可以回显变量。 你也可以这样做:if(move_uploaded ...否则...(所以你知道它在哪里失败,如果失败)

+0

谢谢你的帮助!我改变了写权限,但是它仍然没有将文件上传到该文件夹​​,我也添加了if语句来处理错误,并且显示错误信息,当我尝试上传时。 – Himani