php файл не открывается на моем новом ноутбуке - PullRequest
0 голосов
/ 26 января 2012

У меня есть эта форма, которая появляется в модальном окне следующим образом:

<?php
error_reporting(0);
require("../codebase/grid_connector.php");
include '../site_globals/dbc.php';
$mask5 = filter($_GET["var1"]);
//Get Category ID
$cat    = mysql_query("SELECT category FROM submissions WHERE submissions.submission_id='$mask5'");
$rows   = mysql_fetch_array($cat, MYSQL_ASSOC);
$array  = filter($rows['category']);
//Get Manufactuer ID
$man    = mysql_query("SELECT manufacturer_id FROM submissions WHERE submissions.submission_id='$mask5'");
$arows  = mysql_fetch_array($man, MYSQL_ASSOC);
$array1 = filter($arows['manufacturer_id']);
//Get All Submission ID's for this popup
$datum  = array();
$result = mysql_query("SELECT submission_id FROM submissions WHERE submissions.category='$array' AND submissions.manufacturer_id='$array1'");
while ($rowd = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $datum[] = $rowd['submission_id'];
}
$datalist = implode($datum, ' , ');
$datalist = filter($datalist);
// Use Submission ID's to Get All Image ID's for this popup
$datum9   = array();
$datasql  = mysql_query("SELECT DISTINCT image_id FROM imagsub WHERE submission_id IN ($datalist)");
while ($row23 = mysql_fetch_array($datasql, MYSQL_ASSOC)) {
    $datum9[] = $row23['image_id'];
}
$datalist2 = implode($datum9, ' , ');
$datalist2 = filter($datalist2);
//Select filenames from images table that matches $datalist2 results
$sql = "SELECT * FROM images WHERE image_id IN ($datalist2)";
$resultz = mysql_query($sql);

?>
<html>
    <head>
    <title>Supplychex Vendor Dashboard</title>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body onLoad="doInitGrid();" marginwidth="0"; topmargin="0">

      <div style="width:100%; height:120px; background-image:url(../images/header.png)">
        <div style="float:left; width:30%; text-align:center">
        <form action="../php/pop_category_viewimages.php" method="post" name="MyForm" target="_blank" id="MyForm">
          <fieldset>
          <legend>Attachments</legend>
            <SELECT id="dropdown" name="dropdown" style="width:250px">
              <?php
                while ( $rowg = mysql_fetch_array($resultz, MYSQL_ASSOC) ){ 
                    echo '<OPTION value="'.$rowg['image_id'].'">'.$rowg['filename'].'</OPTION>'."\r\n";
                 }
            ?>
            </SELECT></br></br>
            <INPUT type="SUBMIT" name="SUBMIT" value="View">
            </fieldset>
          </form>

        </div>
       </body>
</html>

У меня есть это действие для этой формы, установленное на этот файл:

<?php
define("DB_HOST", ""); // set database host
define("DB_USER", ""); // set database user
define("DB_PASS", ""); // set database password
define("DB_NAME", ""); // set database name
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection.");
$db = mysql_select_db(DB_NAME, $link) or die("Couldn't select database");
$id = $_POST['dropdown'];
$query  = sprintf('select * from images where image_id = %d', $id);
$result = mysql_query($query);
$image = mysql_fetch_array($result);
header('Content-type: ' . $image['mime_type']);
header('Content-length: ' . $image['file_size']);
echo $image['file_data'];
?> 

У меня в настоящее время естьGIF-файл и PDF-файл в раскрывающемся списке.И gif, и pdf отлично работают на моем рабочем столе во всех браузерах.Новая вкладка открывается и отображает любую.Я только что взял новый ноутбук и, несмотря на это, использую Firefox 9 в обоих местах, когда запускаю его на своем ноутбуке, вместо того, чтобы просто отображать pdf в новой вкладке, браузер пытается загрузить файл pop_category_viewimages.php.В IE на моем ноутбуке новая вкладка открывается пустой.В Chrome на моем ноутбуке PDF открывается просто отлично.GIF открывается нормально во всех браузерах во всех местах.Я полностью удивлен этим и надеюсь, что в моем коде есть что-то, что я могу корректно открыть PDF во всех браузерах.

Ответы [ 3 ]

2 голосов
/ 26 января 2012

Это означает, что у вас не установлена ​​программа для чтения PDF. Chrome - единственный браузер (AFAIK), который имеет встроенный рендер PDF. Другие браузеры делегируют эту задачу стороннему программному обеспечению, такому как Adobe Acrobat Reader, которое предоставляет плагины, позволяющие отображать PDF-файлы непосредственно в браузере. Отсутствие таких доступных плагинов, единственное, что браузер знает, что делать, это предложить файл для загрузки.

1 голос
/ 26 января 2012

Установите заголовок content-disposition на inline (чтобы попросить браузер показать его) или attachment (чтобы попросить браузер загрузить его на диск):

header('Content-Disposition: inline"');

Или

header('Content-Disposition: attachment; filename="downloaded.pdf"');

0 голосов
/ 26 января 2012

php-файл зависит от сервера, вам может потребоваться либо настроить IIS, либо установить wamp или xamp, чтобы получить необходимые функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...