【发布时间】:2014-01-28 04:33:30
【问题描述】:
我卡住了!! :( 我想上传带有标题和标题的图像文件,我想使用 javascript 来验证标题标题和选择的文件。
我的 html 放在这里:
<input type="text" name="title2" id="title2" value="title" /><br />
<textarea cols="50" rows="10" name="caption" >caption goes here...</textarea><br />
<input type="file" name="photo" id="photo" /><br />
<button id="submit_info" onclick="photowcap()" >post</button><br />
还有我的 javascript:
function photowcap()
{
var title = document.getElementsByName("title2")[0].value;
var photo = document.getElementsByName("photo")[0].value;
var captions = document.getElementsByName("caption")[0].value;
var caption = encodeURIComponent(captions)
var xmlhttp;
if(title == "" || title == " " || title == "title")
{
document.getElementsByName("title2")[0].focus();
document.getElementsByName("title2")[0].value="";
return;
}
else if(captions == "" || captions == " " || captions == "caption goes here..."){
document.getElementsByName("caption")[0].focus();
document.getElementsByName("caption")[0].value="";
return;
}
else if(photo == ""){
alert("please choose image");
}
else{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert("Success!!!");
}
}
xmlhttp.open("GET","photowcap.php? title="+title+"&caption="+caption+"&photo="+photo,true);
xmlhttp.send();}
}
并使用 php 保存它:
<?php
include("admin_conn.php");
$title = $_GET["title"];
$caption = $_GET["caption"];
$photo = $_GET["photo"];
$time=time();
$date = (date("D F d Y",$time));
$query_photowcap = "INSERT INTO school_updates(title, photo, caption, date, time) VALUES('$title','$photo','$caption','$date','$time')";
mysql_query($query_photowcap);
?>
它仅将文件路径保存为“C:fakepath/filename....”,因为我不知道如何使用 javascript 获取文件名,最后我有了将实际图像保存到文件夹中的代码但我真的不知道应该把它放在哪里:提前感谢:)
<?php
error_reporting(0);
$max_file_size = 200 * 1024; #200kb
if (($_FILES["photo"]["type"] == "image/gif")
|| ($_FILES["photo"]["type"] == "image/jpeg")
|| ($_FILES["photo"]["type"] == "image/png" )
&& ($_FILES["photo"]["size"] < $max_file_size))
{
$path = 'images/' . uniqid();
move_uploaded_file($_FILES["photo"]["tmp_name"],
$path.$_FILES["photo"]["name"]);
}
else
{
echo "Files must be either JPEG, GIF, or PNG and less than 200 kb";
}
?>
【问题讨论】:
-
"C:fakepath/filename...." 是浏览器安全设置给出的。您将无法获得的原始路径。 dev.sencha.com/deploy/ext-4.0.0/examples/form/file-upload.html是专业程序员做的,连他们都绕不过去。
-
请帮助 :) 我只是有点卡住了...抱歉英语不好 :D
-
帮助解决什么问题?
-
@Alexdn 您需要了解文件的工作原理。这不像复制/粘贴那么简单。您需要将文件作为二进制数据发送并在服务器端进行处理。
-
我之前已经上传过图片,但是使用的是纯PHP。现在,我想用javascript来做。先生,您有什么建议??
标签: javascript php