Hola, tengo un problema al subir archivos pesados a mi servidor 700mb- 1,5GB.
Como están mucho rato por alguna razón el archivo temporal se borra, o cambia de nombre y cuando finaliza da error de que no se encontró el archivo temporal.
¿Que puede ser y que solución puede haber?
Código PHP:
Ver original<?php
/**
* Only needed if you have a logged in user, see option appendCookieData,
* which adds session id and other available cookies to the sent data.
*
* session_id($_POST['SID']); // whatever your session name is, adapt that!
* session_start();
*/
// Request log
/**
* You don't need to log, this is just for the showcase. Better remove
* those lines for production since the log contains detailed file
* information.
*/
$result['time'] = date('r'); $result['agent'] = $_SERVER['HTTP_USER_AGENT'];
$result['get'] = $_GET;
}
$result['post'] = $_POST;
}
$result['files'] = $_FILES;
}
// we kill an old file to keep the size small
}
$log = @fopen('script.log', 'a'); if ($log) {
}
// Validation
$error = false;
$error = 'Invalid Upload';
}
/**
* You would add more validation, checking image type or user rights.
*
if (!$error && $_FILES['Filedata']['size'] > 2 * 1024 * 1024)
{
$error = 'Please upload only files smaller than 2Mb!';
}
if (!$error && !($size = @getimagesize($_FILES['Filedata']['tmp_name']) ) )
{
$error = 'Please upload only images, no other files are supported.';
}
if (!$error && !in_array($size[2], array(1, 2, 3, 7, 8) ) )
{
$error = 'Please upload only images of type JPEG, GIF or PNG.';
}
if (!$error && ($size[0] < 25) || ($size[1] < 25))
{
$error = 'Please upload an image bigger than 25px.';
}
*/
// Processing
move_uploaded_file($_FILES['Filedata']['tmp_name'], 'uploads/' . $_FILES['Filedata']['name']); $return['src'] = '/uploads/' . $_FILES['Filedata']['name'];
if ($error) {
'status' => '0',
'error' => $error
);
} else {
'status' => '1',
'name' => $_FILES['Filedata']['name']
);
// Our processing, we get a hash value from the file
$return['hash'] = md5_file($_FILES['Filedata']['tmp_name']);
// ... and if available, we get image data
if ($info) {
$return['width'] = $info[0];
$return['height'] = $info[1];
$return['mime'] = $info['mime'];
}
}
// Output
/**
* Again, a demo case. We can switch here, for different showcases
* between different formats. You can also return plain data, like an URL
* or whatever you want.
*
* The Content-type headers are uncommented, since Flash doesn't care for them
* anyway. This way also the IFrame-based uploader sees the content.
*/
if (isset($_REQUEST['response']) && $_REQUEST['response'] == 'xml') { // header('Content-type: text/xml');
// Really dirty, use DOM and CDATA section!
echo '<response>';
foreach ($return as $key => $value) {
echo "<$key><![CDATA[$value]]></$key>";
}
echo '</response>';
} else {
// header('Content-type: application/json');
}
?>