我希望用户上传他的简历,然后将其保存到我的服务器并发送带有该链接的电子邮件。但由于某种原因,文件没有上传。请帮忙。
这是我的代码:
<?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 :(得分:0)
除非是Windows(原谅我)框,否则首先要查看文件或文件夹权限。类似Un * x的系统可以(读取:非常严格)。
我通常在开发机器上解决这个问题的方法是:
这适用于开发环境。我不能说我在现场环境中完全推荐它。在实时环境中更安全的是:webservice-user所拥有的文件夹:webservice-group(基于debian的通用:www-data:www-data),mod应该是755(webservice具有完全访问权限,而其余的只能执行并阅读)。
答案 1 :(得分:0)
此处没有文件类型验证,没有file_exist等。
如果你想要随机文件名,我会校验文件内容并将其用作文件名,或者有一个循环(而file_exists =&gt; gen_random)。虽然这会慢得多,但您应该考虑使用数据库作为跟踪文件/文件所有者的方法。
该说,你必须检查上传的内容,这样人们才不会将恶意脚本上传到你的网页。您还应该使用错误处理。
如果由于某种原因希望运行此脚本 - 您可以回显变量。 你也可以这样做:if(move_uploaded ... Else ...(所以你知道它失败的地方以及它是否失败)。