从我的服务器上传.docx文件时显示错误

时间:2013-12-17 06:52:08

标签: php

好吧,我有一个html表单,用户可以上传他们的.docx文件,然后将这个.docx文件内容插入到db中,并向用户发送消息。

在我的localhost中,它工作正常。但是,当我从我的服务器检查它。它说“文件不存在”。我不明白为什么会这样......

现在我在做什么,我正在获取用户docx文件并阅读它,然后将其内容发送到db并向用户发送消息。首先,我必须将用户上传的文件保存到我的目录然后进行处理,这一点很重要吗?

Html格式:

<tr>
 <td>Upload file</td>
 <td><input type="file" name="file"/></td>
</tr>

Php流程:

require_once("file.php");
$file = $_FILES['file']['name'];
$docObj = new DocxConversion($file);
echo $docText= $docObj->convertToText();   // after echo this line it's saying me fine not exist
$ex = explode(" ", $docText);
$ex = $ex[0]; 

$sms =  "http://fahimit.com/smsapi.php?user=xxx3&pass=xxx&phone=$docText&senderid=$sender&message=$msg";
$sms = file_get_contents($sms); 

if($sms)
 echo "Message send";
else
 echo "message is not send.";

File.php

<?php
 class DocxConversion{
 private $filename;

 public function __construct($filePath) {
  $this->filename = $filePath;
 }

 private function read_doc() {
  $fileHandle = fopen($this->filename, "r");
  $line = @fread($fileHandle, filesize($this->filename));   
  $lines = explode(chr(0x0D),$line);
  $outtext = "";
  foreach($lines as $thisline)
  {
   $pos = strpos($thisline, chr(0x00));
   if (($pos !== FALSE)||(strlen($thisline)==0))
   {
   } else {
    $outtext .= $thisline." ";
   }
  }
  $outtext = preg_replace("/[^a-zA-Z0-9\s\,\.\-\n\r\t@\/\_\(\)]/","",$outtext);
  return $outtext;
 }

 private function read_docx(){
  $striped_content = '';
  $content = '';

  $zip = zip_open($this->filename);

  if (!$zip || is_numeric($zip)) return false;

  while ($zip_entry = zip_read($zip)) {
   if (zip_entry_open($zip, $zip_entry) == FALSE) continue;

   if (zip_entry_name($zip_entry) != "word/document.xml") continue;

   $content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));

   zip_entry_close($zip_entry);
  }// end while

  zip_close($zip);

  $content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content);
  $content = str_replace('</w:r></w:p>', "\r\n", $content);
  $striped_content = strip_tags($content);

  return $striped_content;
 }

/************************excel sheet************************************/

 function xlsx_to_text(){ // <---------------- Change here.
  $xml_filename = "xl/sharedStrings.xml"; //content file name
  $zip_handle = new ZipArchive;
  $output_text = "";
  if(true === $zip_handle->open($this->filename)){  // <---------------- Change here.
   if(($xml_index = $zip_handle->locateName($xml_filename)) !== false) {
    $xml_datas = $zip_handle->getFromIndex($xml_index);
    $xml_handle = DOMDocument::loadXML($xml_datas, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
    $output_text = strip_tags($xml_handle->saveXML());
   }else{
    $output_text .="";
   }
  $zip_handle->close();
 } else {
  $output_text .="";
 }
 return $output_text;
}

public function convertToText() {
 if(isset($this->filename) && !file_exists($this->filename)) {
  return "File Not exists";
 }

 $fileArray = pathinfo($this->filename);
 $file_ext  = $fileArray['extension'];
 if($file_ext == "doc" || $file_ext == "docx" || $file_ext == "xlsx" || $file_ext == "pptx")
 {
  if($file_ext == "doc") {
   return $this->read_doc();
  } elseif($file_ext == "docx") {
   return $this->read_docx();
  } elseif($file_ext == "xlsx") {
   return $this->xlsx_to_text();
  } elseif($file_ext == "pptx") {
   return $this->pptx_to_text();
  }
 } else {
  return "Invalid File Type";
 }
 }

 }      

 ?>

0 个答案:

没有答案