javascript - PHP上存文件一般都是怎么做的?大伙有什么好的思路?
最近在做一个文本上传系统,需要面对很多类型的各种大小不一的文件上传需求,主要遇到的问题是当:
1.遇到超大文件(类似超大zip文件上传)怎么处理上传问题(是限定上传大小还是拆分上传?);
2.不同类型的文件上传怎么做到有效的分类上传处理;
3.数据存储管理机制怎么弄;
实在是很烧脑 。 。 。各位看官可以选单个问题解答,跪求大牛帮我全干掉这些问题。
回复内容:
最近在做一个文本上传系统,需要面对很多类型的各种大小不一的文件上传需求,主要遇到的问题是当:
1.遇到超大文件(类似超大zip文件上传)怎么处理上传问题(是限定上传大小还是拆分上传?);
2.不同类型的文件上传怎么做到有效的分类上传处理;
3.数据存储管理机制怎么弄;
实在是很烧脑 。 。 。各位看官可以选单个问题解答,跪求大牛帮我全干掉这些问题。
PHP文件上传相关配置
php.ini:
http://php.net/manual/zh/features.file-upload.post-method.php
<code>内存相关: upload_max_filesize=100M 默认值是2M post_max_size=128M 默认值是8M memory_limit=128M 默认值是128M 时间相关: max_input_time 默认60秒 max_execution_time 默认30秒 request_terminate_timeout 默认为0,不限制,这是PHP-FPM的配置项. </code>
nginx.conf
http://nginx.org/en/docs/http/ngx_http_core_module.html
http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html
<code>client_max_body_size 128m; # 默认值是1m fastcgi_connect_timeout 60s; # nginx和fastcgi进程建立连接的最大时间 fastcgi_read_timeout 60s; # fastcgi进程处理数据的超时时间 fastcgi_send_timeout 60s; # fastcgi进程发送数据的超时时间 </code>
服务器方面,PHP从5.6开始,支持上传超过2GB的大文件.
http://php.net/ChangeLog-5.php#5.6.0
Uploads equal or greater than 2GB in size are now accepted.
大文件上传操作会产生较长时间的网络I/O和磁盘I/O,PHP工作进程会被阻塞,应该多开一些工作进程.
如果要分类,可以建立对应文件后缀的子目录,这些后缀子目录再按照日期进行区分,文件名生成要求唯一,比如:
<code><?php function unique_filename() { $time = !empty($_SERVER['REQUEST_TIME_FLOAT']) ? $_SERVER['REQUEST_TIME_FLOAT'] : mt_rand(); $addr = !empty($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : mt_rand(); $port = !empty($_SERVER['REMOTE_PORT']) ? $_SERVER['REMOTE_PORT'] : mt_rand(); $ua = !empty($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : mt_rand(); return md5(uniqid(mt_rand(), true).$time.$addr.$port.$ua.mt_rand()); } </code></code>
然后把文件的路径存储到数据库的字段中.

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.
