我创建了一个简单的代码来打开txt文件并将值放在mysql数据库中。当我上传文件时,我有错误按摩:
警告:move_uploaded_file(files / szoki.txt):无法打开流: 在C:\ xampp \ htdocs \ betolto \ index.php中没有这样的文件或目录 60
警告:move_uploaded_file():无法移动 ' C:\ XAMPP \ TMP \ phpF08E.tmp'到' files / szoki.txt'在 第60行的C:\ xampp \ htdocs \ betolto \ index.php
警告:fopen(files / szoki.txt):无法打开流:没有这样的文件 或第61行的C:\ xampp \ htdocs \ betolto \ index.php中的目录。无法 打开文件!
我正在使用XAMPP来运行此代码
有什么问题?
我的代码是:
<?php
if(isset($_POST['read'])){
$link=mysqli_connect('localhost','root','','szokiadatbazis') or die('could not connect to database'.mysql_error());
$terminated=$_POST['deli'];
$file_type=$_FILES['file1']['type'];
$allow_type=array('text/plain');
$fieldall="";
if(in_array($file_type,$allow_type)){
move_uploaded_file($_FILES['file1']['tmp_name'],"files/".$_FILES['file1']['name']);
$file=fopen("files/".$_FILES['file1']['name'],"r") or die ("Unable to open file!");
$tru="truncate table upload_test";
mysqli_query($link,$tru) or die(mysql_error());
while(!feof($file)){
$line = fgets($file);
$values=str_replace($terminated,"','",$line);
$sql="insert into upload_test values('$values')";
mysqli_query($link,$sql);
}
fclose($file);//close the file after read
unlink("files/".$_FILES['file1']['name']);
}else{
echo "Please select only text file(.txt file is recomended)!";
}
}
?>
答案 0 :(得分:0)
您必须正确指定上传文件的位置。
"files/".$_FILES['file1']['name']
可能不是正确的位置。 您可以选择保存文件的相对路径或绝对路径。 我建议你使用绝对路径并使用这样的东西:
$filesPath = dirname(__DIR__);
要查找指向的位置,请回显$ filesPath并将其调整为指向要保存文件的正确文件夹。
例如: 如果您从c:\ xampp \ www \ project \ script.php
运行脚本$filesPath = dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR . "tmp";
会指向你的c:\ xampp \ tmp
但是通过打印变量来更好地检查正确的位置!
答案 1 :(得分:0)
打开cmd并输入
mkdir C:\xampp\htdocs\betolto\files
attrib -r -a -s -h C:\xampp\htdocs\betolto\files\
如果在unix上,打开终端并输入:
mkdir 0755 path_to_http_dir/betolto/files
move_uploaded_file
自然会从你的 php的tmp目录中获取$_FILES['file1']['tmp_name']
在最后取消链接文件时,我们可以使用sys_get_temp_dir
但我忘记了tmp_name已经包含完整路径。
所以此行sys_get_temp_dir() . '/'
不是必需的
这样
<?php
if(isset($_POST['read'])){
$link=mysqli_connect('localhost','root','','szokiadatbazis') or die('could not connect to database'.mysql_error());
$terminated=$_POST['deli'];
$file_type=$_FILES['file1']['type'];
$allow_type=array('text/plain');
$fieldall="";
if(in_array($file_type,$allow_type)){
$file = fopen($_FILES['file1']['tmp_name'],"r") or die ("Unable to open file!");
$tru = "truncate table upload_test";
mysqli_query($link,$tru) or die(mysql_error());
while(!feof($file)){
$line = fgets($file);
$values=str_replace($terminated,"','",$line);
$sql="insert into upload_test values('$values')";
mysqli_query($link,$sql);
}
fclose($file);//close the file after read
} else {
echo "Please select only text file(.txt file is recomended)!";
}
}
?>