Hi,
ich komm mal gleich zur Sache. Ich hab ein Formular zum Dateiuploaden und will vor dem Post abfragen ob die Datei schon in der Datenbank ist. Nur das Problem ist er Postet immer egal ob die Datei vorhanden ist oder nicht.
Hier das Formular + JS:
Er geht in die handlecheck() rein gibt mir aber dann in der checkfile() nicht den richten Wert zurück, da er in die Schleife mit dem alert('test') rein geht. Nur sollte er das nicht da ich jedesmal die gleiche Datei hochlade.
Hier wäre die PHP datei:
Die einfachen Anführungszeichen beim Funktionsaufruf checkfile(start) escape ich wird hier aber nicht angezeigt
ich komm mal gleich zur Sache. Ich hab ein Formular zum Dateiuploaden und will vor dem Post abfragen ob die Datei schon in der Datenbank ist. Nur das Problem ist er Postet immer egal ob die Datei vorhanden ist oder nicht.
Hier das Formular + JS:
PHP-Code:
echo'
<script type="text/javascript" languag="javascript">
function createXMLHttpRequest() {
var ua;
if(window.XMLHttpRequest) {
try {
ua = new XMLHttpRequest();
} catch(e) {
ua = false;
}
} else if(window.ActiveXObject) {
try {
ua = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
ua = false;
}
}
return ua;
}
var Req1 = createXMLHttpRequest();
function checkfile (par) {
var check = par;
if(check == "start")
{
var file = document.getElementById("file").value;
alert(file);
Req1.open("POST", "check.php");
Req1.onreadystatechange = handlecheck;
Req1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded", true);
Req1.send("file="+file);
}
else
{
if(check == "true")
{
alert("Datei mit diesem Dateinamen existiert bereits");
return false;
}
else
{
alert("test");
return true;
}
}
}
function handlecheck() {
if (Req1.readyState == 4)
{
var check = Req1.responseText;
checkfile(check);
}
}
</script>
<h1>Bild - Upload</h1>
<form enctype="multipart/form-data" action="?page=ul" method="post" name="Upload"
onsubmit="return checkfile(\'start\');">
<table>
<tr>
<td><input name="file" type="file" id="file" size="40"></td>
</tr>
<tr>
<td><input type="text" name="i_titel" /></td>
</tr>
<tr>
<td><textarea name="i_bes"></textarea></td>
</tr>
<tr>
<td><input type="text" name="i_pos" size="20" /></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td><input type="submit" name="b_up" value="Upload starten"></td>
</tr>
</table>
</form>
';
Er geht in die handlecheck() rein gibt mir aber dann in der checkfile() nicht den richten Wert zurück, da er in die Schleife mit dem alert('test') rein geht. Nur sollte er das nicht da ich jedesmal die gleiche Datei hochlade.
Hier wäre die PHP datei:
PHP-Code:
$fotos = "SELECT * FROM ".table3." ORDER BY pos";
$resf = mysql_query($fotos);
$datei = basname($_POST['file']);
if(is_resource($resf) && mysql_num_rows($resf) > 0)
{
while($arr = mysql_fetch_assoc($resf))
{
if($datei == $arr['dateiname'])
{
$check = true;
}
}
}
if($check)
{
echo 'true';
}
else
{
echo 'false';
}
Kommentar