PHP上传文件问题,在线等
已经实现了有内容和需要上传文件混合情况下的页面
现在的问题是文件可以上传,可是怎么样才能把文件
名保存在数据库里呢?试了就是可以添加内容和上传
文件,就是不能把文件名保存在数据库,郁闷啊
是不是mysql字段类型设置错了?
BLOB类型等都试了就是存不进去
文件名是$pic_name
我还试了隐藏域,当不上传文件是$pic_name为空
当上传了文件$pic_name就是指向上传的文件名,可
还是存不进数据库哦,怎么解决?
没有办法了,西西
问题点数:0、回复次数:9Top
1 楼papayo(papayo)回复于 2003-11-02 22:38:21 得分 0
上传代码是
//上传文件开始
$updir = "doc";//指定目录名称
if(!is_dir($updir)){
mkdir($updir, 0777); //若不存在,则创建目录
}
if (!is_writeable($updir)){
echo "$updir目錄不可寫!"; exit;
}
/**
|+-----------------------------------------------
| 上传图片
|+-----------------------------------------------
**/
$up_pic = $_FILES['pic'];
$pic_name = $up_pic['name'];
if (!empty($pic_name)) {
if (!is_uploaded_file($up_pic['tmp_name'])){
echo "不能上傳 $pic_name";
exit();
}
$file_name=substr($pic_name, -3); //获取上存文件小点后的的文件名
$file_name_last=strtolower($file_name); //将文件名改成小写
if($file_name_last!="zip"&&$file_name_last!="rar"&&$file_name_last!="doc"){
echo "请输入zip,rar,doc三种格式的文件!";
exit();
}
$up_url=$updir."/".$pic_name;
if (!move_uploaded_file($up_pic['tmp_name'], $up_url)){ //上传样图
echo "上傳文件失敗";
}
}
//上传文件结束
?>
文件名想存进person数据库,sc字段,怎么实现?
sc字段需要是什么数据类型?Top
2 楼zhongmao(西风瘦马)回复于 2003-11-02 23:39:57 得分 0
sc字段需要是varchar数据类型
保存是普通内容一样保存
$strSql = "insert person (sc) values(".$up_url.")";Top
3 楼mysam(小天下人)回复于 2003-11-03 08:06:15 得分 0
数据库存东西不好吧,你可以只将文件名存到数据库中,把文件复制到指定目录下。(COPY函数)Top
4 楼papayo(papayo)回复于 2003-11-03 09:35:28 得分 0
现在问题就是可以把文件复制到指定目录下,却不可以把文件名存到数据库里Top
5 楼papayo(papayo)回复于 2003-11-03 10:01:27 得分 0
代码:
<?php require_once('Connections/person.php'); ?>
<?php
//上传文件开始
$updir = "doc";//指定目录名称
if(!is_dir($updir)){
mkdir($updir, 0777); //若不存在,则创建目录
}
if (!is_writeable($updir)){
echo "$updir目錄不可寫!"; exit;
}
/**
|+-----------------------------------------------
| 上传图片
|+-----------------------------------------------
**/
$up_pic = $_FILES['pic'];
$pic_name = $up_pic['name'];
if (!empty($pic_name)) {
if (!is_uploaded_file($up_pic['tmp_name'])){
echo "不能上傳 $pic_name";
exit();
}
$file_name=substr($pic_name, -3); //获取上存文件小点后的的文件名
$file_name_last=strtolower($file_name); //将文件名改成小写
if($file_name_last!="zip"&&$file_name_last!="rar"&&$file_name_last!="doc"){
echo "请输入zip,rar,doc三种格式的文件!";
exit();
}
$up_url=$updir."/".$pic_name;
if (!move_uploaded_file($up_pic['tmp_name'], $up_url)){ //上传样图
echo "上傳文件失敗";
}
}
//上传文件结束
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "file":
$theValue = ($theValue != "") ? "'" . $pic_name . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
}
if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO person (xm, xb, xy, zy, nj, bbs, ss, dh, ff, xq, lb, jy, jh, sc) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($HTTP_POST_VARS['xm'], "text"),
GetSQLValueString($HTTP_POST_VARS['xb'], "text"),
GetSQLValueString($HTTP_POST_VARS['xy'], "text"),
GetSQLValueString($HTTP_POST_VARS['zy'], "text"),
GetSQLValueString($HTTP_POST_VARS['nj'], "text"),
GetSQLValueString($HTTP_POST_VARS['bbs'], "text"),
GetSQLValueString($HTTP_POST_VARS['ss'], "text"),
GetSQLValueString($HTTP_POST_VARS['dh'], "text"),
GetSQLValueString($HTTP_POST_VARS['ff'], "text"),
GetSQLValueString($HTTP_POST_VARS['xq'], "text"),
GetSQLValueString($HTTP_POST_VARS['lb'], "text"),
GetSQLValueString($HTTP_POST_VARS['jy'], "text"),
GetSQLValueString($HTTP_POST_VARS['jh'], "text"),
GetSQLValueString($HTTP_POST_VARS['sc'], "file"));
mysql_select_db($database_person, $person);
$Result1 = mysql_query($insertSQL, $person) or die(mysql_error());
$insertGoTo = "index.php";
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>Top
6 楼ipman(.NET)回复于 2003-11-04 00:41:37 得分 0
不懂帮你upTop
7 楼caaclxf(有人说我的名字很长)回复于 2003-11-04 10:16:17 得分 0
可以用$_FILES['upload_file']['name'][0]取得文件名Top
8 楼luxuezhu(csdn完善你的blog吧)回复于 2003-11-04 12:52:22 得分 0
mark
Top
9 楼hcfyxy(无名)回复于 2003-11-04 13:09:14 得分 0
你把取到的文件名打印出来看看啊,只要取到这个值,就一定可以存进数据库的。Top




