我正在使用PHP,现在我的功能是,用户可以选择txt文件类型的消息运行循环,该文件将转换为csv并开始在用户计算机上下载后,我要做的是那样,该文件的副本也会将其保存到我的应用程序目录中,我不知道该怎么做。
我的功能
protected function insertData($data) {
$lang = $this->load->language('transaction/export_csv');
$files = $this->request->files;
$file = $this->request->files['file'];
$file_name = $file['name'];
$ext = pathinfo($file_name,PATHINFO_EXTENSION);
$extension = strtolower($ext);
$errorCode = $file['error'];
if($extension != 'txt'){
$json = array(
'success' => false,
'error' => $lang['error_file']
);
} else {
$handle = fopen($file['tmp_name'], "r");
$new_file = "CSV-".date('d-M-y H:i:s').".csv";
copy($file['tmp_name'], 'upload/CSVFILE.csv'); //UPDATED LINE
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename="'.$new_file.'"');
header('Pragma: no-cache');
header('Expires: 0');
$f = fopen('php://output', 'w');
$f2 = fopen('upload/CSVFILE.csv', 'w'); //UPDATED LINE
if ($handle !== FALSE) {
$row_no =0;
while (($rows = fgetcsv($handle)) !== FALSE) {
foreach($rows as $phone_no) {
fputcsv($f, array($phone_no, html_entity_decode($data['message'])."\r\n\r\n".$row_no));
fputcsv($f2, array($phone_no, html_entity_decode($data['message'])."\r\n\r\n".$row_no)); //UPDATED LINE
$row_no++;
}
}
}
fclose($file);
fclose($f);
fclose($f2); //UPDATED LINE
}
exit();
}
答案 0 :(得分:0)
使用copy
copy($file['tmp_name'], 'PATH TO THE APP DIRECTORY');
确保php进程对应用目录具有写权限。
选择文件名
假设应用程序目录为〜/ app ,您希望文件名为 myfile.csv ,然后使用
copy($file['tmp_name'], '~/app/myfile.csv');
要另存为csv文件
创建一个新文件:
$f2 = fopen('~/app/myfile.csv', 'w');
然后将输出放入两个文件:
$data = array($phone_no, html_entity_decode($data['message'])."\r\n\r\n".$row_no);
fputcsv($f, $data);
fputcsv($f2, $data);