temp_file = file_path + '/' + '~$' + file_name
时间: 2024-02-03 08:04:43 浏览: 11
这段代码的作用是创建一个临时文件路径,其中 `file_path` 是文件所在的路径,`file_name` 是文件名。代码将这两个参数拼接在一起,加上 `~$` 前缀,生成一个临时文件名。这种命名方式通常用于表示文件正在被占用或锁定,以防止其他程序访问该文件。
在某些情况下,例如当文件正在被其他程序占用时,你可能无法直接编辑该文件。此时,你可以尝试使用这个临时文件来编辑内容,一旦保存成功,再将临时文件内容复制到原始文件中,从而达到修改文件的目的。
相关问题
完善代码 do_upload_new.php (用于实现防护) <?php include_once "functions.php"; if(___________)//如果不存在 session start_session($expires); if(! isset($_SESSION['username'])) { exit('您没有权限访问此页面'); } if (!isset($_POST['upload'])) { exit('请选择需要上传的文件'); } if($_POST['path'] != 'uploads' && $_POST['path'] != 'face')/*判断 路径变量*/ { exit('路径错误'); } $target_path = 'c:/uploads/' . $_POST['path'];/*设置非 web 目录保存 文件*/ $uploaded_name = $_FILES['file']['name']; /*上传文件名*/ $temp = explode(".", $uploaded_name);/*以’.’为分隔符将字符串打散 为数组*/ $uploaded_type = ______; //end 函数获取文件后缀 $uploaded_size = $_FILES['file'][____];//$_FILES 函数获取文件大小 if($uploaded_size > 1000000) { exit('文件超过 1M 字节,上传失败'); } if(_________________________________/*strtolower()处理文件后缀*/ _________________________________ _________________________________ ) { exit('文件类型错误,上传失败'); } $fname = md5( time() . $uploaded_name ) . '.' . $uploaded_type;/* 对文件名进行 md5()处理,文件重命名*/ $target_path = $target_path . '/' . ________;//文件名 while(true) { if(!file_exists($target_path)) break; else { $fname = md5( time() . $uploaded_name ) . '.' . $uploaded_type; $target_path = $target_path . '/' . $fname; } } if(!move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) { echo '内部错误,上传失败'; } else { echo htmlspecialchars($uploaded_name) . ' 上传成功! 当前文件名 为' .$fname; } ?>
完善代码如下:
<?php
include_once "functions.php";
if(!session_id()) session_start(); //如果不存在 session,就开始一个新的 session
if(!isset($_SESSION['username'])) {
exit('您没有权限访问此页面');
}
if (!isset($_POST['upload'])) {
exit('请选择需要上传的文件');
}
if($_POST['path'] != 'uploads' && $_POST['path'] != 'face') {
exit('路径错误');
}
$target_path = 'c:/uploads/' . $_POST['path']; //设置非 web 目录保存文件
$uploaded_name = $_FILES['file']['name']; //获取上传文件名
$temp = explode(".", $uploaded_name); //以’.’为分隔符将字符串打散为数组
$uploaded_type = end($temp); //获取文件后缀
$uploaded_size = $_FILES['file']['size']; //获取文件大小
if($uploaded_size > 1000000) {
exit('文件超过 1M 字节,上传失败');
}
if(strtolower($uploaded_type) != 'jpg' && strtolower($uploaded_type) != 'jpeg' && strtolower($uploaded_type) != 'png') { //判断文件类型是否为图片
exit('文件类型错误,上传失败');
}
$fname = md5(time() . $uploaded_name) . '.' . $uploaded_type; //对文件名进行 md5()处理,文件重命名
$target_path = $target_path . '/' . $fname; //设置完整文件路径
while(true) {
if(!file_exists($target_path)) break;
else {
$fname = md5(time() . $uploaded_name) . '.' . $uploaded_type;
$target_path = $target_path . '/' . $fname;
}
}
if(!move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) {
echo '内部错误,上传失败';
} else {
echo htmlspecialchars($uploaded_name) . ' 上传成功! 当前文件名为' .$fname;
}
?>
这个代码哪里错了吗 def Read_from_file(self,path): file_name = 'log_file.txt' with open(file_name,'r') as file_obj: while True: line = file_obj.readline() if line == '': break print(line) def Get_User_log(self,path): uid = input('请输入用户id') temp_lst= [] file_name = os.path.join(path,'log_file.txt') count = 0 with open(file_name,'r') as file_obj: while True: line = file_obj.readline() if line == '': break temp_lst = line.split('\t') if temp_lst[0]==uid: print(line) count += 1 if count ==0: print('没有该用户') end
这段代码可能存在以下问题:
1. 在函数 `Read_from_file` 中,`file_name` 变量的值应该为 `path` 参数,而不是固定为 `'log_file.txt'`。
2. 在函数 `Get_User_log` 中,应该将用户输入的 `uid` 转换为字符串类型,以便与读取到的日志文件中的用户id进行比较。可以使用 `str()` 函数将其转换为字符串类型。
3. 在函数 `Get_User_log` 中,最后的 `end` 变量没有定义,可能是多余的。
下面是修改后的代码:
```
def Read_from_file(self, path):
with open(path, 'r') as file_obj:
while True:
line = file_obj.readline()
if line == '':
break
print(line)
def Get_User_log(self, path):
uid = str(input('请输入用户id:'))
temp_lst = []
count = 0
with open(path, 'r') as file_obj:
while True:
line = file_obj.readline()
if line == '':
break
temp_lst = line.split('\t')
if temp_lst[0] == uid:
print(line)
count += 1
if count == 0:
print('没有该用户')
```
希望能对你有所帮助!
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)