2013-04-23 1 views
2

.docx 파일을 mysql 데이터베이스에 largeblobs로 별도의 덩어리로 저장하고 있습니다 (각 blob을 오버플로하지 않도록). 그런 다음 PHP에서 나는 데이터베이스에서 청크를 "붙이는"후에 문서를 표시합니다. 문서가 페이지 나누기를하지 않는 것으로 나타나는 점을 제외하면 모든 것이 훌륭하게 보입니다.이 프로그램은 다른 프로그램으로 내보내려고 할 때 문제가됩니다. 누구든지 페이지 나누기를 얻는 방법이나 내가 잘못 간 곳을 알고 있습니까?mysql에 저장된 docs라는 단어가 페이지 나누기없이 표시되는 이유는 무엇입니까?

<? 
$username=xxx; 
$password=xxx; 
$database=xxx; 

mysql_connect(localhost,$username,$password); 
@mysql_select_db($database) or die("Unable to select database"); 

$doc=$_GET['doc']; 
header('Content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document'); 
$request = mysql_query("SELECT docData FROM tblDoc WHERE doc='$doc' ORDER BY pieceOrder ASC"); 
while($row=mysql_fetch_array($request)) { 
    echo $row['docData']; 
} 
mysql_close(); 
?> 
+0

그게 답이 아니라는 것을 알고 있습니다.하지만 당신에게 질문이 있습니다. 전통적인 저장 장치 대신에 왜 얼룩을 사용합니까? – ex3v

+0

나는 방금 이것을 만들었고 그것을하는 "전통"방법을 정말로 모르기 때문에. 더 깨끗한 해결책이 있다면 알려 주시기 바랍니다 - 이것은 내가 생각해 낸 것입니다. – Rossi

+0

방금 ​​파일을 원격으로 저장하는 방법이 필요했습니다. 이것은 거의 작동합니다 ... – Rossi

답변

0

모든 것이 잘 저장되어있는 것으로 나타났습니다. 당신이 말했듯이, @ pilsetnieks. 그것은 단지 내 애플 리케이션에서 내보낼 때, 나는 그것이 올바른 형식으로 할당되지 않았기 때문에 그것은 그것이 얻은 형식을 기대하지 않았다. 모든 도움을 주셔서 감사합니다!

1

DOCX 파일은 여러 개의 XML 파일과 기타 자산이 포함 된 이름이 바뀐 ZIP 파일입니다. 업로드를 위해 파일을 분할 한 다음 올바른 순서로 파일을 다시 어셈블하는 경우 원래 업로드 된 파일과의 차이가 없어야합니다. 그러나 파일을 다시 어셈블하는 동안 오류가 발생하면 파일을 열지 못할 가능성이 큽니다. 실제로 페이지 나누기를 제거하는 유일한 방법은 특정 XML 태그를 일부 내부 XML 파일에서 제거하는 것입니다.

그러나 이것은 긴 장면 일 수 있습니다. 문서를보기 위해 사용하는보기를 나타내는 확대/축소 슬라이더의 왼쪽에있는 MS Word 창의 오른쪽 하단에 5 개의 작은 아이콘이 있습니다. (특정 세부 사항은 Word 버전에 따라 다를 수 있습니다.) 이제 기본값은 이고 인쇄 레이아웃은이고 전체 화면은입니다. 웹 레이아웃, 개요초안. 웹에서 오는 문서의 경우 Word 복사본이 웹 레이아웃에 자동으로 표시 될 수 있습니까? (웹 레이아웃 페이지 구분이 없습니다.)

두 가지 더이 :

  1. 또한이 파일을 다운로드해야 함을 나타 내기 위해 Content-Disposition 헤더를 추가해야합니다 (당신은 또한 파일 이름을 지정할 수 있습니다 가)가 아래에 저장됩니다 : 당신은, 그들이 사용되지 않습니다 mysql_ 기능을 사용하지 말아야

    $filename = 'example.docx'; 
    header('Content-Disposition: attachment; filename='.$filename); 
    
  2. , 그들은 안전 위험 그리고 그들은 이상 유지할 코드로 이어집니다. 데이터베이스에 액세스하려면 mysqli_ 또는 PDO을 사용하는 것이 좋습니다. More here.

+0

의견을 보내 주셔서 감사합니다. 그 문서 뷰어 유형은 창의적인 아이디어입니다. 나는 그것을 들여다보고 그것이 효과가 있는지 알려줄 것입니다! 다시 한 번 감사드립니다! – Rossi

관련 문제