2014-01-23 2 views
0

안녕하세요, 그래서 어디서 SQL 데이터베이스에 pdf를 업로드하는지 궁금합니다. 사용자가 파일을 업로드 한 다음 제출을 클릭하면 해당 파일이 SQL 데이터베이스의 셀에 저장 될 수 있도록하려고합니다. 이 문제를 해결하는 올바른 방법입니까? 나는 pdf를 전혀 파싱 할 필요가 없다. 단지 그것을 업로드하고 그것을 데이터베이스에서 끌어낼 수 있어야한다. 고맙습니다!PHP : SQL 데이터베이스에 Pdf 업로드

+2

가장 좋은 방법은 서버에 파일을 업로드하고 데이터베이스에 파일 이름을 저장하는 것입니다. –

+0

데이터베이스가 있습니까? 그렇다면 어떻게 구성 했습니까? 즉 스키마는 무엇입니까? – iX3

+0

전체 PDF를 데이터베이스에 실제로 저장 하시겠습니까? 또는 하나의 셀에 pdf의 경로를 저장하고 해당 경로를 사용하는 응용 프로그램에서 pdf에 액세스합니까? –

답변

1

PDF를 서버 또는 데이터베이스에 저장할 수 있습니다. 당신이 다시 읽을 필요시) (당신이 base64_decode를 사용

$fileAsString = base64_encode(file_get_contents('PDF.pdf')); 
//now store $fileAsString in your database cell 

; : 데이터베이스에 저장을해야하는 경우 다음을 사용

$store_pdf = mysql_query("INSERT INTO table (data) VALUES ('".mysql_real_escape_string(file_get_contents('/pdf/file/path.pdf'))."')"); 

참고 :

+0

그렇다면 사용자가 파일 업로드에 대해 어떻게 생각합니까? 예를 들어 데스크톱에 PDF가있는 경우입니다. 나는 단지 pdf에 포인터를 생성하기 위해 폼을 사용할 것이고, 그때 그들이 attach를 선택할 때 SQL 쿼리를 실행할 것인가? – visualbasicNoob9000

+0

파일을 평소대로 업로드합니다. PHP는 base64_encode() 함수에서 읽을 수있는 임시 파일을 만든 다음 해당 문자열을 가져 와서 DB에 저장합니다. – Kovo

1

당신이 정말로 데이터베이스 (BLOB)를 PDF 파일을 저장하려면

은, 당신이 뭔가를 할 수 있습니다 (가정 MySQL의 기능은 데이터베이스와 인터페이스에 사용되는)

데이터베이스에 BLOB를 저장하는 것은 일반적으로 고려되지 않습니다. 더 나은 접근 방법은 파일 시스템의 어딘가에 파일을 옮기고 파일 자체 대신 데이터베이스에 파일 경로를 저장하는 것입니다.

예 : 테이블에서 경로를 가져 오는 후

$path_to_pdf='/pdf/file/path.pdf'; 

mysql_query("INSERT INTO table (pdf_path) VALUES ('$path_to_pdf')"); 

& 액세스 pdf 파일.

<?php 
$query=mysql_query("SELECT pdf_path FROM table"); 
$result=mysql_fetch_array($query); 
?> 
<a href="<?php echo $result['pdf_path']; ?>">Download PDF</a> 

mysql 확장은 현재 사용되지 않으며 향후 언젠가 제거됩니다. 대신 PDO 기능을 사용할 수 있습니다. (http://www.php.net/manual/en/book.pdo.php)

+0

그렇다면 사용자가 파일을 업로드하는 방법 (예 : 바탕 화면에 pdf 파일이있는 경우)은 어떻게됩니까? 나는 단지 pdf에 포인터를 생성하기 위해 폼을 사용할 것이고, 그때 그들이 attach를 선택할 때 SQL 쿼리를 실행할 것인가? – visualbasicNoob9000

+0

@ visualbasicNoob9000 DB에 PDF 콘텐츠를 저장하는 경우 파일을 업로드 할 필요가 없습니다. 방금 파일 내용을 읽고 필드에 저장합니다. 하지만 그냥 대신 파일을 업로드 및 DB 테이블 필드 (예 : 경로를 저장하는 것이 좋습니다 ... SQL 쿼리 실행) –

관련 문제