2012-09-10 59 views
1

我想知道如何使用jquery驗證和發佈圖片上傳論壇。只有兩個輸入:標題和圖像。如果任何這些字段爲空或上傳的文件格式不正確,我需要提供一個錯誤。這裏是你不能檢查與jQuery的文件中的代碼我有(這是不是目前使用jQuery)使用jQuery驗證和發佈

Image.php

<?php 

$uploadDir = 'images/'; //Image Upload Folder 
if(isset($_POST['Submit'])) 
{ 
    $title = mysql_real_escape_string($_POST['title']); 
    $fileName = $_FILES['Photo']['name']; 
    $tmpName = $_FILES['Photo']['tmp_name']; 
    $fileSize = $_FILES['Photo']['size']; 
    $fileType = $_FILES['Photo']['type']; 
    $filePath = $uploadDir . $fileName; 
    $result = move_uploaded_file($tmpName, $filePath); 
    if (!$result) { 
     echo "Error uploading file"; 
     exit; 
    } 
    if(!get_magic_quotes_gpc()) 
    { 
     $fileName = addslashes($fileName); 
     $filePath = addslashes($filePath); 
    } 
    $query = "INSERT INTO images(title,image) VALUES ('".$title."','".$filePath."')"; 
    mysql_query($query) or die (mysql_error()); 
} 
?> 

<form name="Image" enctype="multipart/form-data" action="image.php" method="POST"> 
<input type="text" name="title" id="title" value=""><br/><br/> 
<input type="file" name="Photo" size="20" accept="image/gif, image/jpeg, image/x-ms-bmp, image/x-png"><br/> 
<INPUT type="submit" class="button" name="Submit" value=" Submit "> 
</form> 

回答

0

,你可以檢查它是否有正確的擴展。要檢查是否字段爲空,你可以使用:

var extension = $('input[name=Photo]').val().split('.').pop(); 
if (extension !== "gif" && extension !== "jpg") { 
    // error code 
} 

我不知道,如果你想使用AJAX來發布文件:

if ($('#title').val() === '') { 
    // error code 
} 

您可以用類似檢查的文件擴展名,但你不必這樣做。如果您附加驗證表單提交事件,您可以停止提交表單,如果出現錯誤,請將其提交給服務器。

$('form').submit(function() { 
    var error = false; 
    // error checking here 

    if (error) { 
     return false; 
    } 
}); 
+0

感謝做u如何使它檢查一個以上的文件類型。像jpg和gif –

+0

我已更新代碼來檢查gif或jpg。 –

0

你可以在擴展驗證...

$('form').submit(function(event) { 
    var file = $('input[type=file]').val();  

    if (! file) { 
     alert('The file is required.'); 
     event.preventDefault(); 
     return; 
    } 

    if (file.match(/\.(?:jpeg|jpg|gif)$/)) { 
     alert('Image files only!'); 
     event.preventDefault(); 
    } 

}); 

...或者你可以驗證的MIME類型。

$('form').submit(function(event) { 
    var file = $('input[type=file]').prop('files')[0]; 

    if (! file) { 
     alert('The file is required.'); 
     event.preventDefault(); 
     return; 
    } 

    var mime = file.type; 

    if (mime != 'text/jpeg' || mime != 'application/gif') { 
     alert('Image only!'); 
     event.preventDefault(); 
    } 

}); 

當然,您也需要在服務器上進行驗證,這段代碼僅僅是爲JavaScript啓用的用戶提供的一種禮貌。