Я пытаюсь удалить файл, который загружен на мой сервер после того, как файл успешно отправлен в Box через API. Однако unlink
не удаляет файл. Ниже приведена часть моего кода:
$cur_time = time();
$apikey= $_SESSION["api_key"];
$list_id = $_POST['list_id'];
$justfile= "list-".$list_id."-".$cur_time.".csv";
$filename = "data/list-".$list_id."-".$cur_time.".csv";
$final_file = file_put_contents($filename, $csvOutput);
$cur_time = time();
$headr[] = 'Authorization: Bearer xxxxxxxxxxxxxx';
$target_url = 'https://upload.box.com/api/2.0/files/content';
$file_name_with_full_path = realpath($final_file);
$json = json_encode(array(
'name' => $list_id."-".$cur_time.".csv",
'parent' => array('id' => 4224475591)
));
$fields = array(
'attributes' => $json,
'file'=>'@'.$filename
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER,$headr);
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result = json_decode( curl_exec($ch));
curl_close ($ch);
$my_resp = $result->total_count; //if 1, then upload to Box was successful
if ($my_resp ==1){
echo("success");
unlink($justfile);
}
else{
echo("problem");
unlink($justfile);
}
Если я делаю var_dump($justfile)
, я получаю строку, которая идеально соответствует файлу, который должен быть удален, и теперь он сидит на моем сервере.
Что я здесь делаю неправильно?
Выяснил вопрос. Я забыл включить правильный путь в моем тривиальном unlink
. Вместо unlink($justfile);
Мне нужно unlink($filename);
, так как это содержит полный путь к файлу.
unlink
генерируетE_WARNING
приE_WARNING
.unlink($path_to_txt_file);
и посмотрим, что вы получите.