通过php在apache服务器上上传文件
我正试图将一个文件从我的网站下载到我的服务器上,但找不到我做错的原因或地方 下面是我的php代码:通过php在apache服务器上上传文件,php,apache,file-upload,debian,Php,Apache,File Upload,Debian,我正试图将一个文件从我的网站下载到我的服务器上,但找不到我做错的原因或地方 下面是我的php代码: $fn = $_FILES['file']['name']; if (is_writable('.')) { echo "Writable<BR>"; } else { echo "Not writable<BR>"; } $upfile = './'.basename($fn); echo
$fn = $_FILES['file']['name'];
if (is_writable('.')) {
echo "Writable<BR>";
} else {
echo "Not writable<BR>";
}
$upfile = './'.basename($fn);
echo $upfile.'<BR>';
shell_exec("echo 'baaaaah' > test.baaaah");
$f = $_FILES['file']['tmp_name'];
echo $f.'<BR>';
if (is_uploaded_file($f)) { echo "uploaded<BR>"; } else { echo "not uploaded<BR>";}
$com = "test - f ".$f." && echo 'F' || echo 'N'";
echo $com.'<BR>';
echo shell_exec($com).'<BR>';
if (move_uploaded_file($f,$uploadfile)) {
echo "File transfer OK<BR>";
} else {
echo "File transfer NOK<BR>";
}
print_r($_FILES);
因此,我首先检查我的文件夹是否可写(它不打算是“.”,但我移动到这里是因为我想要的文件夹也不工作(与“.”到…)的行为相同)=>检查
然后我尝试在这里shell_exec一个文件,只是为了确保=>check,文件在服务器上
然后检查是否在服务器上创建了临时文件:
-检查,不管怎样,上传的文件在这里
-不检查,但是对临时文件的测试不起作用(并且由于该文件不应该在脚本结束之前删除,所以应该在这里看到该文件imho?)
然后我尝试使move\u upload\u file=>不检查
我打印的$_文件没有显示任何可疑内容(错误=0,文件名与我以前看到的匹配)
我不知道哪里出了问题,也不知道哪里出了错误>$uploadfile在代码中没有定义。更改它或将其设置为“.”,它应该可以工作 您似乎没有在任何地方定义目标文件名
$uploadfile
。你可能想要$upfile
。真不敢相信我错过了。。。我把它改成$upfile,我确实工作了
Writable
./flag.jpg
/tmp/phpyKvhEz
uploaded
test - f /tmp/phpyKvhEz && echo 'F' || echo 'N'
N
File transfer NOK
Array ( [file] => Array ( [name] => flag.jpg [type] => image/jpeg [tmp_name] => /tmp/phpyKvhEz [error] => 0 [size] => 1660 ) )