Försöker få till ett fotoalbum, där denna funktion ingår. Eftersom det är på b-one.net så är som jag fattat register_globals=off samt att dom kör i safe mode on. Får alltså felmeddelande att funtionen move-uploaded_file inte funkar. Kan dock se att tmp_filen finns. Kan man kringgå detta på något sätt ex. med copy(). Har en aning om jag sett detta någonstans.
move_uploaded_file()
4 svar · 399 visningar · startad av Humble
copy fungerar inte under safe_mode, men däremot ska move_uploaded_file göra det.
Hur ser din kod ut ?
Vad får du för felmeddelande ?
felmeddelande
move_uploaded_file(): URL file-access is disabled in the server configuration
och failed to open stream: no suitable wrapper could be found samt move_uploaded_file(): Unable to move '/tmp/phpz4csVu' to 'http://www.mindomän.se/album/images/sunset.jpg' .
Här är koden:
<?php
include "album_config.inc.php";
// Use Heredoc syntax to format the XHTML form
$addPhotoForm = <<< addPhotoForm
<p>Add a photo to the album</p>
<!-- Här har jag ändrat action sidan eftersom fel filnamn kommentaren inom HTML eftersom Heredocsyntax-->
<form action="add_photo.php"
enctype="multipart/form-data" method="post">
<p>
Photo:<br />
<input name="photo" type="file" />
</p>
<p>
Descriptive Title:<br />
<input type="text" name="title"
size="40" maxlength="80" value="" />
</p>
<p>
Description:<br />
<textarea name="description"
rows="3" cols="40"></textarea>
</p>
<p>
<input type="submit" value="Add photo!" />
</p>
</form>
addPhotoForm;
// If the user has submitted a file for uploading.
if (is_uploaded_file($_FILES['photo']['tmp_name'])){
# Add the photo to the MySQL database
add_photo($_FILES['photo']['name'], $_POST['title'],$_POST['description']) or die("couldnt add photo");
# Move the photo from the temp directory to
# the images directory.
move_uploaded_file($_FILES['photo']['tmp_name'], ABSOLUTE_PATH.$_FILES['photo']['name']);
echo "<p>The photo was successfully uploaded .</p>";
echo "$tmp_name";
}
// display the form on every page instance
echo $addPhotoForm;
?>
move_uploaded_file arbetar mot filsystemet. Du försöker flytta filen via http.
Ändra till en sökväg i filsystemet.
Alltså där du har konstanten ABSOLUTE_PATH ska du istället ha en sökväg till katalogen via filsystemet, antingen relativt eller absolut från diskroten.