作者imgodd (新手请指教)
看板PHP
标题[请益] 图片上传到资料库有路径
时间Sun Jun 30 19:56:52 2013
小弟 找到一篇教学
是使用DW的PHP方式来达成
可以把图片上传 也加说明文字
用途可以拿来做产品商品的展示说明
http://antlite.com/blog/2008/12/dreameaver-php-upload-images/
但是照着做後 还是失败了
图片会有一个上传的等待过程
并没有上传到FTP的任何资料夹中
所有文字资料都会进到资料库
但就是图片路径仍然是预设图片路径
以下贴上要新增资料那一页的语法
有点长 请各位多多指教..感恩感恩
-----------------
<?php require_once('../Connections/newssql.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($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 "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
if ($_POST['case_picurl']!=="120.jpg") {
$upload_file=$_FILES['upload']['tmp_name'];
$upload_file_name=$_FILES['upload']['name'];
if($upload_file){
$file_size_max = 2000*1000;// 1M限制最大容量(bytes)
$store_dir = "../upload";// 图片储存的位置
$accept_overwrite = 1;//是否允覆盖相同文件
// 检查文件大小
if ($upload_file_size > $file_size_max) {
echo "对不起,你的档案容量大於规定";
exit;
}
// 检查读取文件
if (file_exists($store_dir . $upload_file_name) && !$accept_overwrite) {
Echo "存在相同名称文件,请修改档案名称後再上传。";
exit;
}
//复制文件到指定目录
if (!move_uploaded_file($upload_file,$store_dir.$upload_file_name)) {
echo "复制文件失败";
exit;
}
}
$Erroe=$_FILES['upload']['error'];
switch($Erroe) {
case 0:
break;
case 1:
Echo "上传的档案超过了 php.ini 中 upload_max_filesize 的值.";
break;
case 2:
Echo "上传的档案超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。";
break;
case 3:
Echo "文件只有部分被上传";
break;
case 4:
Echo "没有文件被上传";
break;
}
}
$insertSQL = sprintf("INSERT INTO casecenter (case_type, case_date, case_subject, case_picurl, case_name, case_location, case_age, case_loss, case_occ, case_content, case_editor, case_ok) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['case_type'], "text"),
GetSQLValueString($_POST['case_date'], "date"),
GetSQLValueString($_POST['case_subject'], "text"),
GetSQLValueString($_POST['case_picurl'], "text"),
GetSQLValueString($_POST['case_name'], "text"),
GetSQLValueString($_POST['case_location'], "text"),
GetSQLValueString($_POST['case_age'], "int"),
GetSQLValueString($_POST['case_loss'], "int"),
GetSQLValueString($_POST['case_occ'], "text"),
GetSQLValueString($_POST['case_content'], "text"),
GetSQLValueString($_POST['case_editor'], "text"),
GetSQLValueString($_POST['case_ok'], "text"));
mysql_select_db($database_newssql, $newssql);
$Result1 = mysql_query($insertSQL, $newssql) or die(mysql_error());
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>新增产品</title>
<link rel="stylesheet" type="text/css" href="../css/reset.css" />
<link rel="stylesheet" type="text/css" href="../css/main.css" />
<script type="text/javascript" src="../js/main.js"></script>
<link rel="stylesheet" href="
http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css" />
<script src="
http://code.jquery.com/jquery-1.8.2.js"></script>
<script src="
http://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>
<script>
$(function() {
$( "
#case_date" ).datepicker({dateFormat: 'yy-mm-dd'});
});
</script>
<script src="
http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
<script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
</head>
<div id="admincontent">
<div id="detailcontent">
<div class="admintitle">新增案例分享</div>
<div class="contentbox">
<form method="post" name="form1" action="<?php echo $editFormAction; ?>" enctype="multipart/form-data">
<table align="center">
<tr valign="baseline">
<td nowrap align="right">类别</td>
<td><select type="text" name="case_type" >
<option value="专案" selected="selected">专案</option>
<option value="治疗">治疗</option>
</select></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">日期</td>
<td><input type="text" name="case_date" value="<?php echo date("Y-m-d");?>" ></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">标题</td>
<td><input type="text" name="case_subject" value="" ></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">昵称</td>
<td><input type="text" name="case_name" value="" ></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">地区</td>
<td><input type="text" name="case_location" value="" ></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">年龄</td>
<td><input type="text" name="case_age" value="" ></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">减重(公斤)</td>
<td><input type="text" name="case_loss" value="" ></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">职业</td>
<td><input type="text" name="case_occ" value="" ></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><div id="imgview"></div>插入缩图</td>
<td><input name="upload" type="file" id="upload" size="50" onChange="checkandsetvalue();" /></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">编辑者</td>
<td><input type="text" name="case_editor" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">文章内容</td>
<td><textarea type="text" name="case_content" value="" cols="80" rows="15"></textarea></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">审核内容</td>
<td><input name="case_ok" id="case_ok" type="radio" value="No" checked="checked" />
隐藏
<input type="radio" name="case_ok" id="case_ok2" value="Yes" />
显示</td>
</tr>
<tr valign="baseline">
<td nowrap align="right"> </td>
<td><input name="submit" type="submit" value="插入记录" onClick="check();return document.checkValue;"></td>
</tr>
</table>
<input type="hidden" name="case_id" value="">
<input type="hidden" name="case_picurl" value="120.jpg" id="hiddenpost">
<input type="hidden" name="MM_insert" value="form1">
</form>
<p> </p>
</div>
</div>
<div class="clear"></div>
</div>
</body>
</html>
<?php
mysql_free_result($Reccase);
mysql_free_result($ReccaseSelect);
?>
<script type="text/javascript">
function checkandsetvalue(){
var x = document.getElementById("upload"); //取得 upload 的 Dom
var p = document.getElementById("hiddenpost");
var y = document.getElementById("imgview");
if(!x || !x.value){
y.src = "../upload/120.jpg";
p.value = "120.jpg";
return;
}
var patn = /\.jpg$|\.jpeg$|\.png$|\.gif$/i; //限制副档名
if(patn.test(x.value)){
var filepath = x.value;
y.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = x.value;
if(filepath.lastIndexOf("\\")>0){
filepath = filepath.substring(filepath.lastIndexOf("\\")+1,filepath.length);
}
p.value = filepath; //将id 为hiddenpost 隐藏栏位的值替换为上传文件。文件。
}else{
alert("请选择.jpg.jpeg .png .gif格式档案。");
}
}
function check(){
var error = '';
var x = document.getElementById("upload");
var p = document.getElementById("hiddenpost");
if(!x || !x.value){
p.value = "120.jpg";
return;
}
var patn = /\.jpg$|\.jpeg$|\.png$|\.gif$/i; //限制副档名
if(!patn.test(x.value)){
error = "档案格式错误!";
alert(error);
}
document.checkValue = (error == '');
}
</script>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.215.10
1F:→ imgodd:自己换方法解决了,感恩 07/01 07:56
2F:→ Rplus:也可以说说是换了什麽方法 :) 07/01 23:18
3F:→ imgodd:因为是用DW作的 所以是用他的一个ajax上传插件 08/25 19:40
4F:→ imgodd:但是发现这方法很不连贯 不算是很好解决方案 08/25 19:40
5F:→ imgodd:遇到相同档案名称会盖过去 08/25 19:41