作者yoshihito (Emily)
看板PHP
标题[请益] 无法正确抓到_POST的值?
时间Mon Nov 14 04:07:09 2011
因为是新手+非科班,所以写的不好code很乱请多包涵...>"<
现在的问题是这个code我在自己的电脑主机做测试时是OK的
换到学校的server上就不行了
一直出现像这样
"Notice: Undefined index: uploadfile in
/..../php_ffmpeg.php on line 51 Notice: Undefined index:
uploadfile in /..../php_ffmpeg.php on line 57..."
google了一下解决方式
有一种是改php.ini的设定 但好像不是很推
所以我有试一下另一种用if(isset())去写的方式
就像下面20111114.edit~20111114.edit.end的范围....
-------------------
<?php
ini_set('display_errors','On');
set_time_limit(500);
include_once("connect_db.php");
//20111114.edit
//检查是否有输入档名
if(isset($_POST["file_name"])){
if($_POST["file_name"] == null){
die('Please input the file name.');
};
};
//检查有没有选取档案
if(isset($_FILES["uploadfile"]["name"])){
if($_FILES["uploadfile"]["name"] == null){
die('Please choose one file.');}
};
//检查档案是否已存在
if(isset($_POST["file_name"])){
$query = "SELECT * FROM `ffmpeg_upload_video` WHERE `file_name` =
'$_POST[file_name]'";
$result = mysql_query($query,$con) or die("Can't send your query".
mysql_error());
$num_rows = mysql_num_rows($result);
if ($num_rows > 0){
die("The file has already existed!");
};
};
//20111114.edit.end
-----
但是下面这一段开始就是即使补了if(isset())的写法进去
也还是失败....
但相当奇妙的是其他的页面都可以抓到表单传来的值(比如留言和msg的功能)
在这个的form其实里面只有
file_name
description
uploadfile
这三个栏位而已 所以不知道到底是哪里错了...
还请好心的高手帮忙回答一下...
--------
//定义路径
$myURL = "
http://localhost/";
//档案保存的初期设定
//档案保存的directory
$inputFile_path = 'video_upload/';
//存档档名
if ($_FILES["uploadfile"]["error"] > 0)
{
echo "Error: " . $_FILES["uploadfile"]["error"] . "<br />";
}
else
{
$file_path = $inputFile_path . $_FILES["uploadfile"]["name"];
}
//ffmpeg初期设定
//ffmpeg的位置
$ffmpeg_path = '.\\3GP_Converter034\\cores\\ffmpeg';
//转档後的档案位置
$outputFile_dir = 'video_upload\\';
//转档後的档名
//$outputFile_name = $_FILES["uploadfile"]["name"].'_.mp4';
$outputFile_name = $_POST["file_name"]/*["file_name"]*/.'_.mp4';
$outputFile_path = $outputFile_dir . $outputFile_name;
$outputFile_path2 = 'video_upload/' . $outputFile_name;
//转换选项之1
$command_option1 = ' -y -i ';
//转换选项之2
$command_option2 = ' -f mp4 -vcodec h264 -r 25 -b 1200k -s 640x480 -acodec
mp3 -ar 44100 -ab 64k ';
//播放器的初期设定
$thumbFile_name = $_FILES["uploadfile"]["name"].'_.jpg';
$thumbFile_path = $outputFile_dir. $thumbFile_name;
$thumbFile_path2 = 'video_upload/'. $thumbFile_name;
//播放器选项之2
$thumbFile_option2 = ' -f image2 -s 320x240 -ss 3 -r 1 -t 0:0:0.001 -an ';
//取得已上传之档案
if(move_uploaded_file($_FILES["uploadfile"]["tmp_name"], $file_path)){
//取得移动之档案
chmod($file_path,0644);
//指定pass
$video_dir = 'video_upload\\';
$video_path = $video_dir. $_FILES["uploadfile"]["name"];
//转换成FLV
//转换的script
$command_line_video = $ffmpeg_path . $command_option1 . $video_path .
$command_option2 . $outputFile_path;
//实行变换FLV的command
$last_line_video = system($command_line_video, $retval_video);
/*
echo '<script type = "text/javascript" src="'. $myURL .
'ffmpeg.js"></script>';
echo '<script language="javascript">foutput("'.$myURL . '","'.
$outputFile_name.'");</script>';*/
//生成播放器
//生成播放器的指令
$command_line_img = $ffmpeg_path . $command_option1 . $outputFile_path .
$thumbFile_option2 . $thumbFile_path;
//实行播放器生成的command
$last_line_img = system($command_line_img, $retval_img);
//echo '<p><img src="'. $myURL . $tumbFile_path . '"/></p>';
//echo '<video width="320" height="240" src="'.$outputFile_path2.'"
controls></video>';
//echo '<video width="320" height="240" src="text.mp4" controls ></video>';
}
if(is_uploaded_file($file_path))
{
copy($file_path,$outputFile_path2);
unlink($file_path);//删除上传档案(暂存位置)
}
date_default_timezone_set('Asia/Tokyo');
$datetime = date("Y-m-d H:i:s");
$id = $_SESSION['id'];
$sql=<<<eof
INSERT INTO `ffmpeg_upload_video`(file_name, video_path, thumb_path,
description, submit_user, created)
VALUES
('{$_POST["file_name"]}','{$outputFile_path2}','{$thumbFile_path2}','{$_POST["description"]}','{$id}','{$datetime}');
eof;
/*if(!$result = mysql_query($sql,$link))
{
echo("Sorry!can't deal with the file now!\n");
exit();
}*/
$rst=mysql_query($sql, $con);
if($rst){
//if success
print "Your video has been saved! <br>";
}
else{
//if fail
print "failed...<br>";
echo mysql_errno($con) . ": " . mysql_error($con). "\n";
echo mysql_errno($con) . ": " . mysql_error($con) . "\n";
}
$con=mysql_close($con);
?>
---------------------------------------------
才疏学浅 真的很不好意思
拜托大家了~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.167.255.64
※ 编辑: yoshihito 来自: 219.167.255.64 (11/14 04:10)
1F:→ akasan:isset($_FILES["uploadfile"]["name"]) 要拆成 11/14 04:21
2F:→ akasan:isset($_FILES["uploadfile"]) 再加上 11/14 04:22
3F:→ akasan:isset($_FILES["uploadfile"]["name"]) 11/14 04:22
4F:→ akasan:因为会先存取$_FILES["uploadfile"]检查有没有["name"] 11/14 04:23
5F:→ yoshihito:谢谢a大! 我先试试看 另外是每碰到post值就要逐一改吗? 11/14 04:29
6F:→ yoshihito:对了 还有其实file_name也抓不到 囧 11/14 06:36
7F:→ aqzb:如果不清楚变数里面放什麽 可以用print_r($_POST)来看.. 11/14 12:39
8F:→ tkdmaf:$uploadfile = $_POST['uploadfile'];总觉得是这个问题。 11/14 13:08
9F:→ aaroms:真的完成了要run还是把的php.ini的error_reporting改掉吧 11/14 16:46
※ 编辑: yoshihito 来自: 131.113.137.195 (11/14 21:24)
10F:→ yoshihito:谢谢大家~ aqzb大我试了一下那个方法 没有print出来 11/14 21:29
11F:→ yoshihito:tkdmaf大 这个赋值的方式我有试过 不过也还是失败 11/14 21:30
12F:→ yoshihito:我有试过把下方的档案上传和转档部分全部拿掉 就有收到 11/14 21:31
13F:→ yoshihito:表单传来的值 所以在想跟这边的设定会不会有关系 11/14 21:31