通过 php 在服务器 apache 上上传文件
Uploading file on server apache via php
我正在尝试将文件从我的网站下载到我的服务器,但找不到我做错的原因或位置。
这是我的 php 代码:
$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);
这里是网站输出:
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 ) )
所以首先我检查我的文件夹是否可写(它不应该是“.”但我搬到这里是因为我想要的文件夹也不起作用(与“.”相同的行为通过... )) => 检查
然后我尝试shell_exec这里的文件只是为了确定=>检查,文件在服务器上
然后我检查是否在服务器上创建了临时文件:
- 检查,反正 is_uploaded 认为文件在这里
- 不检查,但对临时文件的测试不起作用(并且由于不应在脚本结束之前删除该文件,所以它应该在此处看到该文件恕我直言?)
然后我尝试让 move_uploaded_file => 不检查
然后我打印 $_FILES,它没有任何可疑之处(错误 = 0,文件名与我之前看到的相符)。
我不知道哪里出了问题,也不知道哪里出了问题><
$uploadfile 在您的代码中未定义。更改它或将其设置为“.”它应该工作。
我正在尝试将文件从我的网站下载到我的服务器,但找不到我做错的原因或位置。
这是我的 php 代码:
$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);
这里是网站输出:
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 ) )
所以首先我检查我的文件夹是否可写(它不应该是“.”但我搬到这里是因为我想要的文件夹也不起作用(与“.”相同的行为通过... )) => 检查
然后我尝试shell_exec这里的文件只是为了确定=>检查,文件在服务器上
然后我检查是否在服务器上创建了临时文件: - 检查,反正 is_uploaded 认为文件在这里 - 不检查,但对临时文件的测试不起作用(并且由于不应在脚本结束之前删除该文件,所以它应该在此处看到该文件恕我直言?)
然后我尝试让 move_uploaded_file => 不检查
然后我打印 $_FILES,它没有任何可疑之处(错误 = 0,文件名与我之前看到的相符)。
我不知道哪里出了问题,也不知道哪里出了问题><
$uploadfile 在您的代码中未定义。更改它或将其设置为“.”它应该工作。