Lưu nội dung file ảnh vào CSDL MYSQL
Số trang: 4
Loại file: doc
Dung lượng: 51.00 KB
Lượt xem: 14
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Nhu cầu phát triển web của PHP là lưu nội dung của file ảnh vào trong một cơ sở dữ liệu(CSDL) và sau đó là đọc nội dung của file ảnh đã lưu trong CSDL ra và hiển thị ra trình duyệt.Nhu cầu này có một số đặc điểm sau:Lưu nội dung file ảnh vào CSDL thì sẽ không phụ thuộc vào đường dẫn đến thư mục chứahình. Nếu bạn dùng theo cách hiển thị nội dung hình ảnh theo cách truyền thống thì đường đếnfile hình thật chính xác thì file hình mới hiển thị ra, chẳng may thư...
Nội dung trích xuất từ tài liệu:
Lưu nội dung file ảnh vào CSDL MYSQLLưu nội dung file ảnh vào CSDL MYSQLNhu cầu phát triển web của PHP là lưu nội dung của file ảnh vào trong một cơ sở dữ liệu(CSDL) và sau đó là đọc nội dung của file ảnh đã lưu trong CSDL ra và hiển thị ra trình duyệt.Nhu cầu này có một số đặc điểm sau:TỔNG QUANNhu cầu phát triển web của PHP là lưu nội dung của file ảnh vào trong một cơ sở dữ liệu(CSDL) và sau đó là đọc nội dung của file ảnh đã lưu trong CSDL ra và hiển thị ra trình duyệt.Nhu cầu này có một số đặc điểm sau:● Lưu nội dung file ảnh vào CSDL thì sẽ không phụ thuộc vào đường dẫn đến thư mục chứahình. Nếu bạn dùng theo cách hiển thị nội dung hình ảnh theo cách truyền thống thì đường đếnfile hình thật chính xác thì file hình mới hiển thị ra, chẳng may thư cấu trúc thư mục đó bị thayđổi thì chúng ta phải cập nhật lại rất nhiều đường dẫn trên website, hay file ảnh có thể bị xóamất hay bạn restore hay backup bị thiếu....Chỉ thiếu một phần nhỏ là file hình không hiển thịđược rồi. Để giảm được những rủi ro này bạn dùng cách như thế này là lưu nội dung file ảnhvào CSDL như vậy là không phụ thuộc vào đường dẫn hay cấu trúc thư mục... rất là lôi thôi.Chúng ta chỉ phụ thuộc vào nơi chứa nội dung chủa file hình.● Lưu nội dung file ảnh vào CSDL thì rất thuận tiện cho việc backup và restore. Trong đó dùngcách truy cập trực tiếp đến hình thì khi backup hay restore thì chúng ta phải backup/restore rấtnhiều file nhỏ rất là mệt. Trong khi đó dùng cách lưu nội dung file ảnh vào CSDL thì chúng ta chỉcần backup/restore lại một file là đủ, thông thường là file SQL.● Nếu chúng ta dùng cách truy cập trực đến file hình thì khi chúng ta upload hình lên server qua(form upload) thì một số host không cho ta quyền ghi vào thư mục (write) thì chúng ta không đưahình lên trang web của mình được. Lưu file trong CSDL là một giải pháp khá thích hợp tronghoàn cảnh này.● Không chỉ lưu giới hạn file ảnh vào CSDL mà chúng ta còn lưu rất nhiều file khác nhau vàoCSDL. Để đơn giản chúng ta sẽ tìm hiểu cách lưu file ảnh vào CSDL MySQL và ngôn ngữ thựchiện là PHP.THIẾT KẾ CSDLChúng ta chỉ cần một bảng để lưu nội dung của một fila ảnh và trong bảng này chúng ta sẽ thiếtkế như sau:● Cột nhận dạng (ID) của file ảnh, chúng ta dùng kiểu dữ liệu AUTO_INCREMENT để làm IDcho các file ảnh đã lưu trong CSDL.● Cột lưu nội dung file ảnh, đây là cột quan trọng quyết định hình ảnh sẽ hiển thị lên trình duyệt.Nội dung của file ảnh cũa là một chuỗi nhưng dữ liệu nhị phân. Vì vậy chúng ta sẽ sử dụng kiểudữ liệu mediumblob để lưu nội dung của file ảnh (kiểu dữ liệu blob cũng là chuỗi nhị phân,nhưng chiều dài tối đa chỉ có 65Kb, sẽ không đủ cho chúng ta muốn lưu một fila ảnh lớn).● Và bảng chúng ta sẽ có cấu trúc như sauCREATE TABLE imgData (imgID int NOT NULL AUTO_INCREMENT,imgContents mediumblob NOT NULL,PRIMARY KEY (imgID));LƯU NỘI DUNG FILE ẢNH VÀO CSDLChúng ta xem như đã có trên server. Và đoạn chương trình sau sẽ mở file ảnh thông qua tên fileđể đọc nội dung của file ảnh và lưu nội dung file ảnh vào trong CSDL.//connect vào CSDL MySQL//host = localhost//username = root//password = root$conn = mysql_connect(localhost, root, root);//chọn database làm việcmysql_select_db(imgSave, $conn);//tên file ảnh$imgFilename = imgData.jpg;//mở file ảnh để đọc với chế độ đọc binary$f = fopen($imgFilename, rb);$imgContents = fread($f, filesize($imgFilename));fclose($f);//chèn nội dung file ảnh vào table imgConetnts$sql = INSERT INTO imgData (imgContents) VALUES( .mysql_real_escape_string($imgContents, $conn) . );mysql_query($sql, $conn);?>ĐỌC NỘI DUNG FILE ẢNH TỪ CSDLĐể đọc nội dung của file ảnh từ CSDL, ta cần ID của file ảnh nếu chúng ta muốn hiển thị tấmhình nào. Đoạn mã sau sẽ minh hoạ chi tiết, nhưng ở đây ta chỉ lấy 1 tấm hình có chỉ số ID = 1.//connect vào CSDL MySQL//host = localhost//username = root//password = root$conn = mysql_connect(localhost, root, root);//chọn database làm việcmysql_select_db(imgSave, $conn);//ID của file ảnh$imgID = 1;//đọc nội dung file ảnh từ table tblImage$sql = SELECT * FROM imgData WHERE imgID= . $imgID;$result = mysql_query($sql, $conn);while($row = mysql_fetch_array($result)){$imgData = $row[imgContents];}?>Biến $imgData sẽ chứa nội dung của file ảnh. Bước tiếp theo, ta xuất nội dung của file ảnh rabrowser. Quá trình xuất nội dung của file ảnh ra browser. Nhưng chúng ta phải báo cho Browserbiết nội dung của chúng ta xuất ra là hình ảnh, đơn giản là chúng ta chỉ chèn vào một dòngheader(Content-type: image/jpeg); là được. Và sau đây là quy trình xuất ra nội dung một fileảnh như sau.header(Content-type: image/jpeg);echo $imgData;?>Như bạn đã thấy rồi đó lưu file ảnh vào CSDL và đọc nội dung của một file ảnh từ CSDL đểxuất ra Browser thật là không dễ chút nào. Nhưng chúng ta chỉ cần lưu ý các bước sau đây.· Đọc nội dung file vào 1 biến, bạn nhớ phải mở file với chế độ đọc binary.· Xử lý các ký ...
Nội dung trích xuất từ tài liệu:
Lưu nội dung file ảnh vào CSDL MYSQLLưu nội dung file ảnh vào CSDL MYSQLNhu cầu phát triển web của PHP là lưu nội dung của file ảnh vào trong một cơ sở dữ liệu(CSDL) và sau đó là đọc nội dung của file ảnh đã lưu trong CSDL ra và hiển thị ra trình duyệt.Nhu cầu này có một số đặc điểm sau:TỔNG QUANNhu cầu phát triển web của PHP là lưu nội dung của file ảnh vào trong một cơ sở dữ liệu(CSDL) và sau đó là đọc nội dung của file ảnh đã lưu trong CSDL ra và hiển thị ra trình duyệt.Nhu cầu này có một số đặc điểm sau:● Lưu nội dung file ảnh vào CSDL thì sẽ không phụ thuộc vào đường dẫn đến thư mục chứahình. Nếu bạn dùng theo cách hiển thị nội dung hình ảnh theo cách truyền thống thì đường đếnfile hình thật chính xác thì file hình mới hiển thị ra, chẳng may thư cấu trúc thư mục đó bị thayđổi thì chúng ta phải cập nhật lại rất nhiều đường dẫn trên website, hay file ảnh có thể bị xóamất hay bạn restore hay backup bị thiếu....Chỉ thiếu một phần nhỏ là file hình không hiển thịđược rồi. Để giảm được những rủi ro này bạn dùng cách như thế này là lưu nội dung file ảnhvào CSDL như vậy là không phụ thuộc vào đường dẫn hay cấu trúc thư mục... rất là lôi thôi.Chúng ta chỉ phụ thuộc vào nơi chứa nội dung chủa file hình.● Lưu nội dung file ảnh vào CSDL thì rất thuận tiện cho việc backup và restore. Trong đó dùngcách truy cập trực tiếp đến hình thì khi backup hay restore thì chúng ta phải backup/restore rấtnhiều file nhỏ rất là mệt. Trong khi đó dùng cách lưu nội dung file ảnh vào CSDL thì chúng ta chỉcần backup/restore lại một file là đủ, thông thường là file SQL.● Nếu chúng ta dùng cách truy cập trực đến file hình thì khi chúng ta upload hình lên server qua(form upload) thì một số host không cho ta quyền ghi vào thư mục (write) thì chúng ta không đưahình lên trang web của mình được. Lưu file trong CSDL là một giải pháp khá thích hợp tronghoàn cảnh này.● Không chỉ lưu giới hạn file ảnh vào CSDL mà chúng ta còn lưu rất nhiều file khác nhau vàoCSDL. Để đơn giản chúng ta sẽ tìm hiểu cách lưu file ảnh vào CSDL MySQL và ngôn ngữ thựchiện là PHP.THIẾT KẾ CSDLChúng ta chỉ cần một bảng để lưu nội dung của một fila ảnh và trong bảng này chúng ta sẽ thiếtkế như sau:● Cột nhận dạng (ID) của file ảnh, chúng ta dùng kiểu dữ liệu AUTO_INCREMENT để làm IDcho các file ảnh đã lưu trong CSDL.● Cột lưu nội dung file ảnh, đây là cột quan trọng quyết định hình ảnh sẽ hiển thị lên trình duyệt.Nội dung của file ảnh cũa là một chuỗi nhưng dữ liệu nhị phân. Vì vậy chúng ta sẽ sử dụng kiểudữ liệu mediumblob để lưu nội dung của file ảnh (kiểu dữ liệu blob cũng là chuỗi nhị phân,nhưng chiều dài tối đa chỉ có 65Kb, sẽ không đủ cho chúng ta muốn lưu một fila ảnh lớn).● Và bảng chúng ta sẽ có cấu trúc như sauCREATE TABLE imgData (imgID int NOT NULL AUTO_INCREMENT,imgContents mediumblob NOT NULL,PRIMARY KEY (imgID));LƯU NỘI DUNG FILE ẢNH VÀO CSDLChúng ta xem như đã có trên server. Và đoạn chương trình sau sẽ mở file ảnh thông qua tên fileđể đọc nội dung của file ảnh và lưu nội dung file ảnh vào trong CSDL.//connect vào CSDL MySQL//host = localhost//username = root//password = root$conn = mysql_connect(localhost, root, root);//chọn database làm việcmysql_select_db(imgSave, $conn);//tên file ảnh$imgFilename = imgData.jpg;//mở file ảnh để đọc với chế độ đọc binary$f = fopen($imgFilename, rb);$imgContents = fread($f, filesize($imgFilename));fclose($f);//chèn nội dung file ảnh vào table imgConetnts$sql = INSERT INTO imgData (imgContents) VALUES( .mysql_real_escape_string($imgContents, $conn) . );mysql_query($sql, $conn);?>ĐỌC NỘI DUNG FILE ẢNH TỪ CSDLĐể đọc nội dung của file ảnh từ CSDL, ta cần ID của file ảnh nếu chúng ta muốn hiển thị tấmhình nào. Đoạn mã sau sẽ minh hoạ chi tiết, nhưng ở đây ta chỉ lấy 1 tấm hình có chỉ số ID = 1.//connect vào CSDL MySQL//host = localhost//username = root//password = root$conn = mysql_connect(localhost, root, root);//chọn database làm việcmysql_select_db(imgSave, $conn);//ID của file ảnh$imgID = 1;//đọc nội dung file ảnh từ table tblImage$sql = SELECT * FROM imgData WHERE imgID= . $imgID;$result = mysql_query($sql, $conn);while($row = mysql_fetch_array($result)){$imgData = $row[imgContents];}?>Biến $imgData sẽ chứa nội dung của file ảnh. Bước tiếp theo, ta xuất nội dung của file ảnh rabrowser. Quá trình xuất nội dung của file ảnh ra browser. Nhưng chúng ta phải báo cho Browserbiết nội dung của chúng ta xuất ra là hình ảnh, đơn giản là chúng ta chỉ chèn vào một dòngheader(Content-type: image/jpeg); là được. Và sau đây là quy trình xuất ra nội dung một fileảnh như sau.header(Content-type: image/jpeg);echo $imgData;?>Như bạn đã thấy rồi đó lưu file ảnh vào CSDL và đọc nội dung của một file ảnh từ CSDL đểxuất ra Browser thật là không dễ chút nào. Nhưng chúng ta chỉ cần lưu ý các bước sau đây.· Đọc nội dung file vào 1 biến, bạn nhớ phải mở file với chế độ đọc binary.· Xử lý các ký ...
Tìm kiếm theo từ khóa liên quan:
thiết kế website thủ thuật máy tính mẹo vặt vi tính công nghệ thông tin kỹ thuật lập trình cơ sở dữ liệu Lưu nội dung file ảnh CSDL MYSQLGợi ý tài liệu liên quan:
-
52 trang 430 1 0
-
Chương trình khung trình độ trung cấp nghề nghề Thiết kế trang Web - Trường CĐN GTVT Đường Thuỷ 1
6 trang 409 0 0 -
62 trang 402 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 378 6 0 -
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 315 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 303 0 0 -
74 trang 301 0 0
-
13 trang 294 0 0
-
96 trang 293 0 0
-
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 293 0 0