probleem met originele filenaam bij $_FILES
Ik heb een probleempje met uploaden van files. Graag wil ik de originele filenaam in de database bewaren bijv. E:\fotos\feestje\Johan.jpg. De $_FILES['upload']['name'] geeft alleen johan.jpg terug. Hoe kan ik de filenaam achterhalen zoals die in de input box staat voor upload.
Johan
<input type="file" name="fullname">
Na verzenden haal je hem op met $_POST['fullname']
Dat werkt niet, dacht het ook, maar ging eerst even testen. Dan krijg je hetzelfde effect als met $_FILES['files']['name'];
Hee, da's gek. Ik ga even kijken.
1) je maakt een hidden field
2) op onsubmit van het form kopieer je de value van de input type file naar het hidden field
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" src="microapi.js"></script>
<script type="text/javascript">
window.onload = init;
var _myForm, _fullname, _file;
function init () {
_myForm = new getObj ('myForm');
_fullname = new getObj ('fullname');
_file = new getObj ('file');
_myForm.obj.onsubmit = function () {return copyfullname ();};
}
function copyfullname () {
_fullname.obj.value = _file.obj.value;
return true;
}
</script>
</head>
<body>
<form action="test.php" method="post" id="myForm">
<input id="fullname" name="fullname" type="hidden">
<input id="file" name="file" type="file">
<input id="submit" name="submit" type="submit" value="submit">
</form>
</body>
</html>
Als ik bovenstaande script uitvoer dan krijg ik
Array ( [fullname] => [file] => Johan.jpg [submit] => submit )
de filename zou moeten zijn C:\Fotos\Johan.jpg
Toch wel lastig probleempje
Johan
Ik heb gevonden hoe je het wel kunt doen. Hieronder volgt het script
test.php
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function setfilename(x)
{
document.getElementById("fullname").value = document.getElementById(x).value;
}
</script>
</head>
<body>
<form action="test.php" method="post" id="myForm">
<input id="fullname" name="fullname" type="hidden">
<input id="file" name="file" id="fname" type="file" SIZE="70" onchange="setfilename(this.id)">
<input id="submit" name="submit" type="submit" value="submit">
</form>
</body>
</html>
Johan:
Jan,
Als ik bovenstaande script uitvoer dan krijg ik
Array ( [fullname] => [file] => Johan.jpg [submit] => submit )
de filename zou moeten zijn C:FotosJohan.jpg
Toch wel lastig probleempje
Johan
Als ik bovenstaande script uitvoer dan krijg ik
Array ( [fullname] => [file] => Johan.jpg [submit] => submit )
de filename zou moeten zijn C:FotosJohan.jpg
Toch wel lastig probleempje
Johan
Dat komt omdat ik een javascript include die jij niet hebt: microapi.js
En de post daarna gebruik je document.getElementByID en die zal het meestal wel doen.