【发布时间】:2014-11-11 02:21:55
【问题描述】:
我使用 CI 2.2 制作了带有附件/文件上传的简单表单。除了在 iphone safari 浏览器上,一切正常。当人们从 iphone safari 附加图像时,文件名变成了 image.jpg。这导致来自不同人的附件不断显示相同图像的问题。
我使用了 CI 提供的文件名加密,但仍然没有运气。
这是模型:
-
从字段中取值的函数:
function check_field() { $ship_date = $this->input->post('date'); $image_data = $this->upload->data(); $field_data = [ 'ship_date' => $ship_date, 'ship_boxes' => $this->input->post('boxes'), 'ship_attach' => $image_data['file_name'], 'image_path' => $image_data['file_path'], 'ship_req_fund' => $this->input->post('option'), 'ship_amount_req' => $this->input->post('amount'), 'ship_emp_id' => $this->session->userdata('id') ]; $this->db->insert('shipment', $field_data); }-
附件功能
function attachment() { $config['upload_path'] = 'uploads/'; $config['allowed_types'] = 'gif|jpg|png|zip|rar|pdf'; $config['max_size'] = '3000'; $config['max_width'] = '2000'; $config['max_height'] = '2000'; $config['encrypt_name'] = true; $this->upload->initialize($config); } -
将消息发送到电子邮件:
function send_message() { $config = [ 'protocol' => 'mail', 'smtp_host' => 'ssl://smtp.googlemail.com', 'smtp_port' => 465, 'smtp_user' => '*******@gmail.com', 'smtp_pass' => '*******', 'mailtype' => 'html', 'charset' => 'iso-8859-1', 'wordwrap' => TRUE ]; $image_data = $this->upload->data(); $image_link = $image_data['client_name']; $message = '<h3>Below is the shipment data you have submitted.</h3>'; $message .= '<p><b>Shipment date</b>: ' . $this->input->post('date') . '</p>'; $message .= '<p><b>Number of boxes</b>: ' . $this->input->post('boxes') . '</p>'; if($this->upload->data()) { $message .= '<p></b>Attachment</b>: <a href="' . base_url() . 'uploads/' . $image_link . '">Click Here</a></p>'; } else { $message .= '<p></b>Attachment</b>: No attachment</p>'; } if($this->input->post('option') == 1) { $message .= '<p><b>Request fund</b>: Yes</p>'; $message .= '<p><b>Amount of funds requested</b>: $' . $this->input->post('amount') . '</p>'; } else { $message .= '<p><b>Request fund</b>: No</p>'; } $this->email->initialize($config); $this->email->set_newline("\r\n"); $this->email->from('*****@gmail.com', '*****'); $this->email->to($this->session->userdata('email')); $this->email->subject('Shipment detail'); $this->email->message($message); $this->email->send(); } }
-
过去有没有人遇到过同样的问题,或者我设置错了?如果这真的是由浏览器引起的,有什么方法可以解决 iphone safari 中的文件上传问题?
谢谢,
【问题讨论】:
-
1.像上面这样的评论会阻碍帮助。 2.问题不完整,什么是“CI”,全名会有所帮助。 3. SO 不鼓励反对的选民给出理由,因为多次反对的人会报复反对投票的人。我最近投了一个不好的答案,并且有 5 个旧问题投了反对票。 4. 我怀疑名称是“加密的”,而不是其他一些创建唯一名称的方案。加密具有非常特定的含义。 5. 我没有否决这个问题。
-
我注意到这个问题在 iOS10 Safari 中得到了修复,很好。
-
@AndyGaskell 这真是个好消息。
标签: php ios iphone codeigniter safari