php - 在现有文件夹中创建文件夹后如何在php中设置755权限
问题描述
我在 Codeigniter 控制器中有以下代码,用于将一些文件上传到远程 ubuntu 服务器中的“上传”文件夹。在这种情况下,上传文件时会在上传文件夹中创建一个名为officer_id 的新文件夹,并且应该对其应用755 权限。否则拒绝上传文件。
public function addFiles()
{
$this->checkPermissions('add', 'officer');
$bc = array(array('link' => '#', 'page' => 'Attachments'));
$meta = array('page_title' => 'Officers - Files', 'bc' => $bc);
$this->data['officer'] = $this->Officer_model->getOfficer();
$this->form_validation->set_rules('officer', "Officer", 'required');
if ($this->form_validation->run() == true) {
$files = $this->multi_upload($_FILES['file'], './uploads/' . $this->input->post('officer'));
if (!empty($files)) {
foreach ($files as $fname) {
$fdata[] = array(
'officer' => $this->input->post('officer'),
'file_name' => $fname,
'status' => 1,
);
}
if ($this->db->insert_batch('tbl_officer_files', $fdata)) {
$this->session->set_flashdata('message', 'Officer Attachments Updated Successfully ..!!');
redirect('officer/addFiles');
} else {
$this->session->set_flashdata('message', 'Officer Attachments Updation Failed ..!!');
redirect('officer/addFiles');
}
}
}
$this->render('officer/addFiles', $meta, $this->data);
}
public function saveUpload()
{
$this->multi_upload($_FILES['file']);
if ($this->upload->do_upload('file')) {
$data = array('upload_data' => $this->upload->data());
$inputFileName = './uploads/' . $data['upload_data']['file_name'];
echo json_encode(array('success' => 'Files have been uploaded successfuly ..!!'));
} else {
$error = array('error' => $this->upload->display_errors());
echo json_encode($error);//array('error' => 'You are not allowed to upload such a file.',
}
}
如何修改我的代码以启用此功能(如 chmod ......)?任何人都可以帮忙吗?
解决方案
您可以chmod("test.txt",0755);
在上传后使用更新文件的权限。
您可以按以下步骤逐步执行此操作。
//this function returns uploaded file path
$uploadedd_file = file_upload_function(...);
if(!file_exists($uploadedd_file)){
die('Error in uploading file');
}
// Setting file permission
$set_permission = chmod($uploadedd_file,0755);
if(!$set_permission){
// delete file if permission is not set
unlink($uploadedd_file);
}
// optional step to validate
$new_permission = substr(sprintf('%o', fileperms($uploadedd_file)), -4);
echo "all good goes here, file uploaded and permission is set to " . $new_permission;
阅读更多关于chmod
:https://www.w3schools.com/php/func_filesystem_chmod.asp
https://www.php.net/manual/en/function.chmod.php
我希望这可行,让我知道。
推荐阅读
- sql - SQL:有没有办法可以找到一个值是否在另一个值的特定索引范围内?
- c# - 尝试在 microsoft graph api 中为用户信息兑换令牌时出现问题
- javascript - 如何使用柏树循环请求?
- android - 无法获取有关相机图像捕获意图的任何数据
- c++ - Why are some keywords colored green in CodeBlocks IDE(C++)?
- c++ - 在 Visual Studio 2015 中使用 vcpkg 和编译
- android - Android Volley 有时会导致双重 POST
- typescript - Set Vuex Store state with typescript
- c# - 确保在实体框架请求期间阻止数据库行
- python - CV Parser 名称匹配