高手们来改下代码看看?
php吧
全部回复
仅看楼主
level 1
quan369 楼主
把SWF上传插件去掉改成:点击头像选择文件完成上传或点保存好完成上传
PHP后端:
public function avatar(){
$uid = get_cookie('uid');
$user = M('bering')->find($uid);
if (!$user) {
$this->error('请重新登录',U(MODULE_NAME.'/Public/login'));
}
if (IS_POST) {
$path = I('path', '', 'trim');
$data['face'] = $path;
$data['id'] = $uid;
if (empty($data['face'])) {
$this->error('请上传图片!');
}
if (M('bering')->save($data) !== false) {
$this->success('保存成功',U('bering/avatar'));
//$this->redirect('bering/avatar');
}else{
$this->error('保存失败!');
}
exit();
}
$this->assign('user', $user);
$this->assign('uid', $uid);
$this->assign('title', '头像设置');
$this->display();
}
public function saveavater(){
$uid = intval(get_cookie('uid'));
if (!$uid) {
$this->error('请重新登录',U('Public/login'));
}
$rs = array();
//上传切头像
$input = file_get_contents('php://input');
$data = explode('--------------------', $input);
$url = './uploads/avatar';
$file = '/'.$uid.'.jpg';
if (!file_exists($url)){
mkdir($url);
}
@file_put_contents($url.$file, $data[0]);
$rs['status'] = $url.$file;
$this->ajaxReturn($rs);
}
html_js前端:
<div class="picmain">
<div class="bering_main">
<div class="setting" id="avatar_main">
<div class="form">
<form method="post" enctype="multipart/form-data" id="upForm" action="{:U('bering/avatar')}">
<dl><dd>头像:<if condition="$user['face']"><img src="{$user.face}" /><else /><img src="__AVATAR__/system/0.gif" /></if></dd></dl>
<dl>上传头像
<dd><div id="altContent" ></div><input type="hidden" name="path" id="path" /></dd>
</dl>
<!--<div class="form_b"><input type="submit" class="btn_blue" id="submit" value="保存"></div>-->
</form>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function submitForm(path) {
$("#path").val(path);
$("#altContent").hide();
$("#upForm").submit();
$("#TB_closeWindowButton").trigger('click');
}
function uploadevent(status) {
status = status.substring(1);
if (status && status !== -1) {
submitForm(status);
} else if (status === -2) {
alert('头像上传失败!');
} else {
$("#TB_closeWindowButton").trigger('click');
}
}
var flashvars = {
"jsfunc": "uploadevent",
"imgUrl": imgUrl,
"pid": "75642723",
"uploadSrc": true,
"showBrow": true,
"showCame": true,
"uploadUrl":"{:U('bering/saveavater')}"
};
var params = {
menu: "false",
scale: "noScale",
allowFullscreen: "true",
allowScriptAccess: "always",
wmode: "transparent",
bgcolor: "#FFFFFF"
};
var attributes = {
id: "FaustCplus"
};
swfobject.embedSWF("__DATA__/FaustCplus/FaustCplus.swf", "altContent", "750", "500", "9.0.0", "expressInstall.swf",flashvars,params,attributes);
</script>
2022年07月15日 07点07分 1
level 9
swf,flash么?为啥还要用三皇五帝时的技术呢?
2022年07月15日 08点07分 2
大神你来改改?
2022年07月15日 13点07分
@quan369 实话实说,改不了。也没兴趣,太多年不用这东西了。都忘光光了。目前上传一般就是直接用form,file field。然后用JS改个界面,弄得好看些。前些年用dropzone,目前不知道用啥。最近没关注。
2022年07月16日 00点07分
level 9
能上传的插件,库,都很多啊?强烈建议去搜搜。flash别用了。
2022年07月15日 08点07分 3
找不到好的
2022年07月15日 13点07分
level 1
quan369 楼主
把它改成:点击头像选择文件完成上传或点保存好完成上传,不要SWF
2022年07月15日 09点07分 4
level 12
自己的作业自己做[滑稽]
2022年07月15日 09点07分 5
大神来帮帮忙
2022年07月15日 13点07分
level 16
你的uid……是直接明文存在cookie里的么……[黑线]
2022年07月15日 10点07分 6
是呀,有啥方法?加密吗?
2022年07月15日 13点07分
@quan369 肯定至少要加密啊,不然我随便注册个号登录进去,然后把cookie里的uid随便改改,撞上别人的uid不就相当于拿到别人的号了么,然后拿别人的号瞎搞就出事了
2022年07月15日 13点07分
上面代码能帮我看看吗?
2022年07月15日 14点07分
level 1
quan369 楼主
在线等呢?
2022年07月15日 13点07分 7
level 1
quan369 楼主
草摔了!草摔了!草摔了!
2022年07月16日 01点07分 8
level 6
想法:“点击头像选择文件完成上传或点保存好完成上传”
思路:
1. 头像处有个隐形文件框“<input type="file">”(用CSS)
2. 因为文件框是隐形的,所以用户点击头像等于选择文件
3. 在选择好文件后,将文件ajax上传到服务器(用onChange监听文件框的改动情况),服务器保存图片并设置头像的同时返回图片地址给浏览器(如果后端已经做好了,前端用一个$.ajax就行)
4. 浏览器测收到新图片地址,更新头像图片地址
以及,自己的作业自己做
2022年07月16日 07点07分 9
1