मैं लगातार अपने सॉफ़्टवेयर में बदलाव करता हूं और इसे सर्वर पर अपलोड करता हूं। चूंकि मेरे पास हर समय मेरे ऑनलाइन सॉफ़्टवेयर का उपयोग करने वाले ग्राहक हैं, यदि कोई PHP फ़ाइल आंशिक रूप से अपलोड की जाती है (मान लीजिए कि अपलोड करने में 3 सेकंड लगते हैं) जब कोई ग्राहक लिंक पर क्लिक करता है (1 सेकंड चिह्न पर कहता है) तो उन्हें एक त्रुटि मिलती है क्योंकि फ़ाइल अभी भी अपलोड हो रहा है ...प्रक्रिया के दौरान सर्वर साइड त्रुटियों के बिना फ़ाइलों को अपलोड करना
Parse error: syntax error, unexpected $end in /inc/functions.php on line 475
मैं ऑस्ट्रेलिया, हमारे इंटरनेट ... अच्छी तरह से में हूँ के रूप में ... "बहुत तेजी से नहीं है" डालने का एक अच्छा तरीका है।
क्या फाइल अपलोड करते समय उपयोग की जाने वाली कोई तकनीक है, इसलिए यह सॉफ़्टवेयर का उपयोग करने वाले ग्राहकों के लिए त्रुटियों का कारण नहीं बनती है?
केवल एक चीज जो मैं कर सकता हूं, फाइलों को एक और निर्देशिका कहने के लिए अपलोड कर रहा है, फिर एक PHP स्क्रिप्ट चला रहा है जो फ़ाइलों को सुपर फास्ट में कॉपी करता है ... लेकिन क्या बेहतर समाधान हैं?
अंतिम कोड
ग्रेग के लिए धन्यवाद नीचे मैं सबसे अच्छा तरीका है काम करने के लिए यह पता लगाने में सक्षम था। सोचा कि मैं अपना अंतिम कोड साझा करूंगा। यह एक बिट किसी न किसी तरह है, लेकिन काम कर देता है ... उम्मीद है कि यह किसी
<?php
// root path
define('ABSPATH', dirname(__FILE__) . '/');
// messages
$GLOBALS['copied'] = array();
$GLOBALS['failed'] = array();
$GLOBALS['folders'] = array();
// you have to submit the form (added security)
if (isset($_POST['copy'])) {
$GLOBALS['devuploads_folder'] = '_devuploads';
function find_files($dir) {
if ($dh = opendir(ABSPATH . $dir)) {
while (($file = readdir($dh)) !== false) {
// ignore files
if ($file === '.' || $file === '..')
continue;
// delete temporary files (optional)
if ($file == '.DS_Store') {
unlink(ABSPATH . $dir . $file);
continue;
}
// determine paths
$live_path = str_replace($GLOBALS['devuploads_folder'] . '/', '', $dir . $file);
$dev_file = $dir . $file;
$live_file = $live_path;
$dev_file_path = ABSPATH . $dir . $file;
$live_file_path = ABSPATH . $live_path;
// it's a file
if (is_file(ABSPATH . $dir . $file)) {
// check if the file has been updated or it's a brand newy
$updated_file = $new_file = false;
if (file_exists($live_file_path)) {
$dev_file_modified = filemtime($dev_file_path);
$live_file_modified = filemtime($live_file_path);
if ($dev_file_modified > $live_file_modified)
$updated_file = true;
} else {
$new_file = true;
}
// move the file
if ($updated_file || $new_file) {
if (copy($dev_file_path, $dev_file_path . '.bak')) {
if (rename($dev_file_path . '.bak', $live_file_path))
if ($new_file)
$GLOBALS['copied'][] = '<strong>New File:</strong> ' . $dev_file . ' moved to ' . $live_file;
else
$GLOBALS['copied'][] = $dev_file . ' moved to ' . $live_file;
else
$GLOBALS['failed'][] = '<strong>Rename failed:</strong> ' . $dev_file . ' to ' . $live_file;
} else {
$GLOBALS['failed'][] = '<strong>Copy failed:</strong> ' . $dev_file . ' to ' . $dev_file . '.bak';
}
}
// it's a folder
} else if (is_dir(ABSPATH . $dir . $file)) {
// create new folder if it doesn't exist
if (!is_dir($live_file_path)) {
$GLOBALS['folders'][] = '<strong>Created:</strong> ' . $live_file;
mkdir($live_file_path, 0755);
}
// keep digging
find_files($dir . $file . '/');
}
}
closedir($dh);
}
}
find_files($GLOBALS['devuploads_folder'] . '/');
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Copy Changes</title>
<style type="text/css">
h1 {
font: normal 20px Arial, Helvetica, sans-serif;
line-height: 24px;
}
p, li {
font: normal 14px Arial, Helvetica, sans-serif;
line-height: 20px;
}
</style>
</head>
<body>
<?php
if (!empty($GLOBALS['failed'])) {
echo '<h1>Errors</h1>';
echo '<ul>';
foreach($GLOBALS['failed'] AS $message) {
echo '<li>' . $message . '</li>';
}
echo '</ul>';
}
if (!empty($GLOBALS['folders'])) {
echo '<h1>New Folders</h1>';
echo '<ul>';
foreach($GLOBALS['folders'] AS $message) {
echo '<li>' . $message . '</li>';
}
echo '</ul>';
}
if (!empty($GLOBALS['copied'])) {
echo '<h1>Copied</h1>';
echo '<ul>';
foreach($GLOBALS['copied'] AS $message) {
echo '<li>' . $message . '</li>';
}
echo '</ul>';
}
if (empty($GLOBALS['failed']) && empty($GLOBALS['folders']) && empty($GLOBALS['copied']))
echo '<p>No updates made.</p>';
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="copy" value="1" />
<p><input type="submit" value="Copy Files" /></p>
</form>
</body>
</html>
यह त्रुटि आमतौर पर अधूरा फ़ंक्शन के कारण होती है। जांचें कि क्या आपके पास '{' और '}' – ariefbayu
@ अपूर्ण है, जिसके कारण यह एक अधूरा फ़ंक्शन है क्योंकि फाइल आंशिक रूप से अपलोड की गई है जैसा कि मैंने अपने प्रश्न में निर्दिष्ट किया है ... कोड में कुछ भी गलत नहीं है। –
ठीक है, मुझे प्रश्न समझ गया याद आती है। हालांकि, अपलोड करके उपयोगकर्ता अपलोड फाइलें हैं। स्रोत कोड नहीं – ariefbayu