Пишешь
Этот первенствует лист был преобразован из HTML таблицы с помощью Javascript.
Это означает, что HTML-таблица уже доступна как файл EXCEL со стороны клиента.
Если это так, нет причин перетаскивать преобразованный EXCEL-файл с клиента обратно на сервер, чтобы клиент мог снова загрузить его с сервера. Это не имело бы смысла и бесполезной полосы пропускания в бесполезном цикле.
Другими словами: когда файл EXCEL уже находится в Javascript-памяти клиента, все, что вам нужно сделать, это сохранить ваш файл EXCEL (преобразованный Javascript) в имя файла на основе чего-то вроде Math.random()
Javascript. Что касается простого подхода к экономии файлов, такие вещи, как возможности сохранения файлов в формате HTML5 (как один из многих способов сделать это), могут стать вашими лучшими друзьями.
Подумайте об этом: если вы сидите на диване у себя дома, вы не едете на работу, чтобы быть в состоянии вернуться домой и выпить пива из холодильника на кухне вашего дома, не так ли? Правильно, вы просто остаетесь дома и заходите на кухню, чтобы схватить это пиво. ;)
То же самое: если вы конвертируете его на стороне клиента и клиент имеет файл в памяти своего компьютера, пусть он сохранит его на своих дисках. Не заставляйте его загружать весь файл, чтобы он мог скачать его ... как сказано: Javascript's Math.random()
позволяет вам создавать случайное число, которое вы можете использовать для создания случайных имен файлов.
EDIT
на основе OP's question in comment:
но, как сохранить эти загруженные файлы с динамическим именем файла в соответствии с месяцем.
Для создания файла на основе месяца, вы бы использовать Дату JavaScript как это:
var now = new Date();
var month = now.getMonth();
И если вы ищете подсказки о том, как сохранить свой файл на сторону клиента, вы могли бы хотят, чтобы погрузиться в:
Если вы хотите, чтобы справиться с этим S ервере стороне и нажмите файл в сторону клиента, используя PHP с вашим собственным именем файла, основанного на year-month-day
, вы могли бы пойти как это:
<?php
$realname = './data.xls';
if (file_exists($realname))
{
$randname = 'YourExcelFilename'.gmdate('Y-m-d').'.xls';
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename='.$randname);
header('Content-Length: '.filesize($realname));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
ob_clean();
flush();
readfile($file);
}
exit();
?>
(EDIT 2: Исправленная приведенный выше пример, удалив 2 ненужные заголовки thanks to a comment by @Herbert)
Если вы хотите больше альтернативных решений, вы можете захотеть, чтобы проверить ответы на the two questions I linked in my first comment поскольку ваш вопрос является потенциалом дубликат из этих вопросов
И какой код вы используете для загрузки файла? – putvande
Кроме того, вы хотите изменить имя файла на сервере или сохранить имя файла на сервере одинаково, но изменить имя загруженного файла? – putvande
ya Мне хотелось бы сохранить имя файла на сервере то же самое – rahul