私はこの問題を解決しようとしていますが、これまでのところうまくいきませんでした。
ファイルのアップロードは Chrome、Mozilla、Safari では機能しますが、IE 8 または 9 では機能しません。タイムアウトになるまで Internet Explorer でハングアップします。コードは次のように機能します。
0
ここでは、成功したことを意味する" " のエラー コードを探しています。ユーザーが何かを作成した場合、ドキュメントの選択以外は以下のコードを実行します..ドキュメントの場合は、コードのelse部分に移動します。
最初の部分では.. 新しいファイル パスを変数に設定します。アップロードされていないかどうかを確認し、アップロードされていない場合は、ユーザーにメッセージを送信します。成功した場合は、いくつかの値をテーブルに挿入します。次に、関数 move_uploaded_file を使用して一時ファイルをディレクトリに移動します。ドキュメントの場合は、else 部分の下のコードを実行します。ここでどこが間違っていますか?どんな考えも役に立ちます。
これが私のコードです。
if ($_FILES['image']['error'] == 0) {
if ($_POST['type'] != 'document') {
$newFile = "/var/www/localhost/htdocs/digital-materials/images/products/".basename($_FILES['image']['name']);
if (!move_uploaded_file($_FILES['image']['tmp_name'],$newFile)) {
echo "<h1>Error uploading file ".$_FILES['image']['name']."</h1>$newFile<br />\n";
} else {
error_reporting(E_ALL);
$escapedPost = array_map('mysql_real_escape_string', $_POST);
extract($escapedPost);
$sql = "INSERT INTO digital_materials (`itemName`,`itemDesc`,`imageURL`,`language`,`category`,`size`,`flagDesc`,`type`,`description`,`fileURL`) VALUES ('$itemName','$itemDesc','".basename($_FILES['image']['name'])."','$language','$category','".basename($_FILES['image']['size'])."','$itemDesc','$category','$itemDesc','".basename($_FILES['image']['name'])."')";
$res = mysql_query($sql);
move_uploaded_file($_FILES['image']['tmp_name'],$newFile);
echo "<h1>File has been uploaded</h1><br />\n";
}
} else {
print_r($_FILES);
$newFile = "/var/www/localhost/htdocs/digital-materials/documents/".basename($_FILES['image']['name']);
$file = $_FILES['image']['tmp_name'];
move_uploaded_file($file,$newFile);
}
}
フォームコードは次のとおりです
<form method='post' action='digital-materials-admin.php' enctype='multipart/form-data'>
<input type='hidden' name='newItem' value='1' />
<div class='add-new-input'>
<div>Item Name:</div><input type='text' name='itemName' />
</div>
<div class='add-new-input'>
<div>File:</div><input type='file' name='image' />
</div>
<div class='add-new-input'>
<div>Type:</div>
<select name='type'>
<option value='default'>Please Select a Type</option>
<option value='image'>Image</option>
<option value='Photos'>Photo</option>
<option value='Logos'>Logo</option>
<option value='document'>Document</option>
</select>
</div>
<div id='typeSelect'></div>
<div class='add-new-input'>
<div>Category</div>
<select name='category'>
<option value='default'>Please Select a Category</option>
<option value='Logos'>Logos</option>
<option value='Presentations'>Presentations</option>
<option value='Photos'>Photos</option>
<option value='PDF'>PDF</option>
<option value='CAD'>Cad Drawing</option>
<option value='Word'>Word Documents</option>
<option value='Spreadsheets'>Spreadsheets</option>
</select>
</div>
<div id='categorySelect'></div>
<div class='add-new-input'>
<div>Item Description:</div><textarea rows='3' cols='40' name='itemDesc'></textarea>
</div>
<div class='add-new-input'>
<div>Language:</div><input type='text' name='language' id='language' />
</div>
<div class='add-new-input'>
<div>Flag Text:</div><input type='text' name='flagDesc' />
</div>
<div class='add-new-input'>
<input type='submit' value='Add Item' id='submit-button' />
</div>
</form>
CSSコード
#imageWarn {
width: 300px;
position: relative;
left: 200px;
color: red;
font-size: 12px;
padding-bottom: 15px;
}
.add-new-input {
vertical-align:top;
padding-bottom:10px;
}
.add-new-input input, textarea, select {
width:300px;
}
.add-new-input div {
width:200px;
font-size:12pt;
clear:none;
display:inline-block;
vertical-align:top;
}
#submit-button {
width:100px;
}