[PHP-users 24376] ファイルをアップロードしたあと開くことができない(ai)

H.Shimizu shimizu @ sdec.com
2005年 2月 4日 (金) 17:00:41 JST


清水と申します。

いつも参考にさせていただいております。

開発環境は
現在、サーバー:MiracleLinux3.0+Apaceh2.0+php4.3+posqgreSQL7.4、
クライアント:Windows2000Pro+IE6.0
です。

現在、イラストレータファイル(.ai)をサーバーにアップロードして共用しようとして
います。
以下のスクリプトでアップロードできるのですが、Mime Typeが「application/pdf」
となってしまいます。
本来は「application/postscript」になるはずだと思います。
更にサーバー上にアップロードしたファイルを開くことができません。
イラストレータのプログラムは起動するのですが、ファイルを開こうとすると
「Adobe PDF ファイル形式に問題があります。このファイルは、別の
アプリケーションで使用されているか、ファイルサーバーによりアクセスが
拒否されました。」とエラーメッセージが帰ってきます。

Mime Typeの誤認なのでしょうか?

サーバーの設定に問題があるのでしょうか?

解決のヒントをいただきたいと思います。
よろしくお願いします。


<?php
header("Content-Type:text/html;charset=EUC-JP");

// リクエスト
  $ImgNo =  $_POST['ImgNo'];
  $No    =  $_POST['No'];

  if ($ImgNo == 1) {
  $Fname = $No . "_1.ai";
  }else{
  $Fname = "00000-00_0.ai";
  }
?>
<html>
<head>
<title>アップロード</title>
<link rel="stylesheet" type="text/css" href="css01.css">
<SCRIPT LANGUAGE="JavaScript" src="css02.js"></script>
</head>
<body bgcolor="FFFFFF" text="000000" link="346ED3" vlink="C875C2"
alink="FFFF00" TOPMARGIN="0" LEFTMARGIN="0" MARGINHEIGHT="0"
MARGINWIDTH="0">
<CENTER>
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="3" WIDTH="400">
<TR>
 <TD>
  <FONT SIZE="2"><SPAN ID="f0000">
  ◎ファイル アップロードページです。
  </SPAN></FONT>
 </TD>
</TR>
</TABLE>
<BR>
<table border="1" width="350">
<tr>
<th>ファイル名</th><th>ファイル名</th><th>サイズ</th><th>MIMEタイプ</th>
</tr>
<?php
$num=0;
 if($_FILES['fl']['name']==""){continue;}

if(file_exists("../ai/".mb_convert_encoding($_FILES['fl']['name'],"SJIS","EU
C-JP"))==TRUE && $_POST['frb']=="true"){
  $num++;
 }elseif(!is_uploaded_file($_FILES['fl']['tmp_name'])){
  $num++;
 }else{
?>
  <tr>
   <td align="right"><?php print($Fname); ?></td>
   <td align="right"><?php print($_FILES['fl']['tmp_name']); ?></td>
   <td align="right"><?php print($_FILES['fl']['size']); ?>Byte</td>
   <td align="right"><?php print($_FILES['fl']['type']); ?></td>
  </tr>
<?php

move_uploaded_file($_FILES['fl']['tmp_name'],"../ai/".mb_convert_encoding($F
name,"SJIS","EUC-JP"));
 }
if($num>0){
 print("<div style='color:red'>".$num."件がアップロードに失敗しました
</div>");
}
?>
</table>
</TABLE>
<TABLE BORDER="0" HEIGHT="100">
 <TR>
  <TD VALIGN="MIDDLE" ALIGN="CENTER">
   <FONT SIZE="2" COLOR="#009900">
   <BR><BR>
   <A HREF="javascript:parent.window.close();">閉じる</A>
   </FONT>
  </TD>
 </TR>
</TABLE>
</body>
</html>




PHP-users メーリングリストの案内