Mysql文件上传和pdf浏览器查看器无法正常工作

时间:2017-09-07 03:10:41

标签: php mysql wordpress file-upload

我正在尝试在我的Wordpress页面和我的练习管理软件之间建立一个界面。当我将文件直接上传到我的练习管理软件时,患者文件中会显示一个物理副本。浏览软件中的文件时,首次点击,我可以在基于浏览器的pdf查看器中查看它们。如果我再次单击文件链接,该文件将下载并在我的PC的PDF软件上打开。

问题:目前我的文件上传到服务器,物理文件放在患者文件中。浏览文件时,它不会显示在我的PDF查看器中。它首次点击下载到我的电脑,然后打开我的PDF软件。但是,直接上载到软件时,同一文件的行为与预期相同。

我发现这两个文件没有区别。所以我假设我的查询中的$ contents变量一定存在问题。我只使用PDF文件。要在我的私人消息软件中上传附件,我使用以下代码:

function action_getmsgup($uploadid) {
  global $wpdb, $out;
  $query = $wpdb->prepare("SELECT ID, post_mime_type, guid FROM {$wpdb->prefix}posts WHERE ID = %d", array($uploadid));
  $rows = $wpdb->get_results($query, ARRAY_A);

  foreach ($rows as $row) {
    $url = $row['guid'];
    $filename = basename($url);
    $path  = parse_url($url, PHP_URL_PATH); // just the path part of the URL
    $parts = explode('/', $path);           // all the components
    $parts = array_slice($parts, -6);       // the last six
    $path  = implode('/', $parts);  
    $filepath = ABSPATH . $path;

    // Get file contents and make a blob.
    $tmpfile = fopen($filepath, "r");
    $contents = fread($tmpfile, filesize($filepath));

    $out['filename'] = $filename;
    $out['mimetype'] = $row['mimetype'];
    $out['contents'] = $contents;
  }
}

问题:我的上传方法是否存在未正确填充$内容的问题?

0 个答案:

没有答案