我想从本地服务器上删除beaglebone上运行的文件。
我已经创建了一个显示所有文件的页面,并允许您选择要删除的文件。(如下所示)
该网页以数组的形式将要删除的文件名返回给php脚本unlink。php
Unlink.php的代码是:
<?php
$files = $_POST['file'];
print_r($files);
if (empty($files)) {
echo "No files were selected. Go back to 192.168.7.2 and refresh the page." ;
} else {
$N = count($files);
for ($i = 0; $i < $N; $i++) {
$path = '/Logs/';
print_r($path);
#chown($path, 666);
if (unlink($path . $_GET['$files[$i]'])) {
echo ": Deleted";
} else {
echo "fail";
}
}
}
?>
但是,每当我尝试删除一个文件时:它都会失败。
解除关联()PHP函数没有正确实现,我不知道为什么。我该怎么做才是正确的?
索引。html
页面位于/var/www/html
中,日志位于/var/www/html/logs/
中。本地服务器的地址是192.168。7.2
表格代码:
<?php
$url = $_SERVER['DOCUMENT_ROOT'];
$path = "/var/www/html/Logs";
$dh = opendir($path);
$k = 0;
$foo = True;
while (($file = readdir($dh)) !== false) {
if ($file != "." && $file != "..") {
if ($k == 0 || $k % 6 == 0) {
$col .= "<tr><td><input type='checkbox' name='file[]' value='$file'> <a href='Logs/$file'>$file</a><br /></td>";
} else if ($k % 6 == 5) {
$col .= "<td><input type='checkbox' name='file[]' value='$file'> <a href='Logs/$file'>$file</a><br /></td></tr>";
} else {
$col .= "<td><input type='checkbox' name='file[]' value='$file'> <a href='Logs/$file'>$file</a><br /></td>";
}
$k++;
}
}
echo "<form action='unlink.php' method='post'><table>$col</table><br/><center><input type='submit' name='formSubmit' value='Delete' /></center></form>";
closedir($dh);
?>
编辑:PHP显示错误
警告:chmod():不允许在/var/www/html/unlink中进行操作。第17行的phpchmod($path.$files[$i],0755)
警告:解除关联(/var/www/html/Logs/2017.01.24--13.43.43--0.log):第18行 /var/www/html/unlink.php拒绝权限失败
if(解除关联($path.$file[$i])
但是当我检查ls-la的/log时-
unlink()
/delete的文件未被打开。如果文件是。exe
或etc请同时签入Windows任务管理器-确定文件未打开1后,让我们尝试以下代码:
// Check existence of file
if (file_exists($cekFile1)) {
// make sure you have permission to delete file
if(chmod($fileDir, 0777)){
if(!unlink($cekFile1)){
echo "unlink is fail !";
}
}else{
echo "chmod is fail";
}
// owner have read, write, execute rights.
// owner's user group only have read rights.
// everybody else only have read rights.
chmod($fileDir, 0744);
}
有关chmod()
的更多信息,请查看此参考:
php。网
php cmod函数。
<?php
$files = $_POST['file'];
$path = "/var/www/html/Logs/";
print_r($files);
if (empty($files)) {
echo "No files were selected. Go back to 192.168.7.2 and refresh the page." ;
} else {
foreach ($files as $file) {
if (unlink($path . $file)) {
echo $path. $file ." : Deleted";
} else {
echo $path. $file . " : fail";
}
}
}
?>
这应该可以做到,$path
是错误的,即使您使用了与其他代码相同的代码,它也缺少斜杠。尽管如此,这段代码不会阻止恶意用户操作。如何避免PHP中的UNLINK安全风险?
从您更新的问题中,我可以看到日志文件夹是指向/media/card/Logs
的符号链接。ls-la/media/card的输出是什么?
有些进一步案文如下:
https://en.wikipedia.org/wiki/Symbolic_link
- http://php.net/manual/en/control-structures.foreach.php
问题内容: 我有两个文件:b.php和test.txt 错误是:警告:unlink(test.txt)[function.unlink]:权限被拒绝 为什么?b.php和test.txt是777,并且相同的组/登录名 如果我在父目录上设置了777,则可以执行取消链接,但必须将777设置回755? 问题答案: 您(在运行过程中,无论您是通过网络服务器还是通过网络服务器)都需要对文件所在目录的写权限。
问题内容: 我无法使用带有command的react.js启动我的项目。得到错误: npm 5.0.3。节点8.1.4。纱线0.24.5 macOS Sierra 10.12.4 当我再次启动命令时,它将安装软件包,但是在命令后,它将显示以下内容: 我试图通过添加Sharp ,但收到相同的错误。EACCES:权限被拒绝 问题答案: 首先,您需要通过运行以下命令来检查权限: 我收到了下一个答复: 比
问题内容: max@serv$ whoami max max@serv$ ls -la ./defines.php -rwxrwxrwx 1 max max 1985 2011-11-16 02:01 ./defines.php max@serv$ chmod 0777 ./defines.php max@serv$ rm ./defines.php rm: cannot remove `./de
我尝试在3台机器上作为集群运行kafka,我已经在所有机器上配置了Zookeeper。现在我尝试在第一台机器上启动kafka服务器,使用 它给出的错误是 kafka安装在路径 /tmp/kafka/kafka_2.11-1.1.0/中,kafka日志在路径 /var/lib/kafka中。我已经以root用户身份登录。但我仍然收到这些错误。我检查了kafka目录bin中. sh文件的权限。所有这些
这是我面临这个问题的一天。我不知道这是因为托管服务器还是我在joomla中的配置。 我正在尝试使用Akeba备份将我的joomla网站上传到ftp。首先,我上传了kickstart。php和Akeba文件的网站,它是成功的。 现在,我做了安装使用akeeba和最后一部分,它显示了一个模式,显示一个按钮"查看您的网站前端"。而不是去网站前端它下载一个index.php文件...我输入http://m
我可以添加“shell命令安装'code'命令”。测试它是有效的,但是如果我关闭VS Code,或者在添加命令几个小时后,它就不起作用了。终端显示“zsh:命令未找到:代码”,在VS上,当点击“shell命令安装代码命令”时,会弹出“EACCES:权限被拒绝,解除关联'usr/本地/bin/代码'”。我该怎么做呢?如果这很重要,我用的是macbook 2020