#php #codeigniter
Вопрос:
В настоящее время я работаю над сайтом для загрузки. Вот моя функция для сохранения имени изображения в базе данных и загрузки его на сервер из данных base64.
public function addImages($order_last_id, $cropped)
{
// this is for saving the base64 image to database
$order = $this->Order_model->get($order_last_id);
// if(!$data){
// return false;
// }
//$images = [];
$cropped_image = [];
$date = new DateTime();
$startdata = $date->format('YmdHis');
$newName = str_replace('/', '', $startdata);
$image_name = $newName;
$i = $this->db->insert_id();
foreach ($cropped['cropped_images'] as $keys => $output){
// $cropped_image[] = $output;
$res[] = ['cropped_images' => $image_name.$i.".jpg",
'order_id' => $order_last_id];
$i ;
}
// foreach ($data['name'] as $key => $image){
// $images[] = $image;
// }
// this is for uploading the base64 image to files
$date = new DateTime();
$startdata = $date->format('YmdHis');
$newName = str_replace('/', '', $startdata);
$image = [];
$image_name = $newName;
$i = $this->db->insert_id();
foreach ($cropped['cropped_images'] as $key => $value) {
$image[] = $value;
file_put_contents(
"uploads/orders/".$image_name.$i.".jpg",
base64_decode(
str_replace('[removed]', '', $value)
)
);
$i ;
}
return $this->db->insert_batch('orderimages', $res);
}
теперь то, что я хочу сделать, это отобразить прогресс file_put_contents() в моем представлении. как я могу этого достичь?
любая помощь будет признательна.
PS: Я не могу найти ничего об этом вопросе в сети, поэтому я надеюсь, что кто-нибудь сможет мне помочь
Комментарии:
1. Хранение файла
file_put_contents()
должно быть более или менее мгновенным. При загрузке требуется время для загрузки (http-запрос), так как для этого необходимо отправить полное содержимое файла с клиента на сервер. Самым простым способом было бы использовать для этого JavaScript (ajax), для которого существует множество руководств/руководств.2. спасибо за ответ, но я использую содержимое файла для сохранения изображений с высоким разрешением (2 МБ и выше), поэтому я думаю, что загрузка изображений также займет больше времени
3. Нет, это быстро (если только у вас нет каких-либо проблем с чрезвычайно медленной файловой системой, но в этом случае лучше разобраться). Время загрузки (http-запрос) будет на порядок медленнее, так что это то, что вы должны показать в своем представлении.
4. цель этого в том, что мой контент занял слишком много времени для перенаправления после завершения. поэтому я хочу, чтобы пользователи знали, сколько их изображений загружается, чтобы избежать перезагрузки страницы.
5. а ну понятно. может быть, мне следует начать просматривать свои коды, чтобы узнать фактический источник задержки. спасибо за ответ!