V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  dilu  ›  全部回复第 73 页 / 共 79 页
回复总数  1562
1 ... 65  66  67  68  69  70  71  72  73  74 ... 79  
2018-04-26 13:02:07 +08:00
回复了 FouMMMM 创建的主题 分享发现 大晚上写毕业论文感觉自己是个废物
你这就不错了,我的题目是随机分的学生选课系统,写起来是简单,论文憋到现在连个摘要都没写出来。
我用的是 react-native-fetch-blob
RN 中是这样写的
```
handleSelectPhoto = () => {
SYImagePicker.asyncShowImagePicker(options)
.then(photos => {

if(photos[0])//如果选择了图片
{
console.log('upload start');
RNFetchBlob.fetch("POST",config.baseUrl + config.avatarUpload,{
'Content-Type' : 'multipart/form-data',
'token':user.password,
'phone':user.teacher_phone,
'isparent':0,
},[
{
name:'file',
filename:photos[0]['uri'],
type:'image/jpg',
data: RNFetchBlob.wrap(photos[0]['uri'])
}
])
.then((response) => response.json())
.then((response) => {
if(1 != response.code)
{
Toast.fail(response.msg);
return false;
}
Toast.info(response.msg);
this.setState({
userAvatar:{uri:config.local + '/public' + response.data.url}
});

})
.catch((err) => {
console.log(err);
Toast.fail('网络异常');
})

console.log(user);
}
})
.catch(err => {

})
}
```

后端是这样写的

```
public function upload()
{

$file = $this->request->file('file');
if (empty($file))
{
$this->error(__('No file upload or server upload limit exceeded'));
}

//判断是否已经存在附件
$sha1 = $file->hash();

$upload = Config::get('upload');

preg_match('/(\d+)(\w+)/', $upload['maxsize'], $matches);
$type = strtolower($matches[2]);
$typeDict = ['b' => 0, 'k' => 1, 'kb' => 1, 'm' => 2, 'mb' => 2, 'gb' => 3, 'g' => 3];
$size = (int) $upload['maxsize'] * pow(1024, isset($typeDict[$type]) ? $typeDict[$type] : 0);
$fileInfo = $file->getInfo();
$suffix = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION));
$suffix = $suffix ? $suffix : 'file';

$mimetypeArr = explode(',', $upload['mimetype']);
$typeArr = explode('/', $fileInfo['type']);
//验证文件后缀
if ($upload['mimetype'] !== '*' && !in_array($suffix, $mimetypeArr) && !in_array($fileInfo['type'], $mimetypeArr) && !in_array($typeArr[0] . '/*', $mimetypeArr))
{
$this->error(__('Uploaded file format is limited'));
}
$replaceArr = [
'{year}' => date("Y"),
'{mon}' => date("m"),
'{day}' => date("d"),
'{hour}' => date("H"),
'{min}' => date("i"),
'{sec}' => date("s"),
'{random}' => Random::alnum(16),
'{random32}' => Random::alnum(32),
'{filename}' => $suffix ? substr($fileInfo['name'], 0, strripos($fileInfo['name'], '.')) : $fileInfo['name'],
'{suffix}' => $suffix,
'{.suffix}' => $suffix ? '.' . $suffix : '',
'{filemd5}' => md5_file($fileInfo['tmp_name']),
];
$savekey = $upload['savekey'];
$savekey = str_replace(array_keys($replaceArr), array_values($replaceArr), $savekey);

$uploadDir = substr($savekey, 0, strripos($savekey, '/') + 1);
$fileName = substr($savekey, strripos($savekey, '/') + 1);
//
$splInfo = $file->validate(['size' => $size])->move(ROOT_PATH . '/public' . $uploadDir, $fileName);
if ($splInfo)
{
$imagewidth = $imageheight = 0;
if (in_array($suffix, ['gif', 'jpg', 'jpeg', 'bmp', 'png', 'swf']))
{
$imgInfo = getimagesize($splInfo->getPathname());
$imagewidth = isset($imgInfo[0]) ? $imgInfo[0] : $imagewidth;
$imageheight = isset($imgInfo[1]) ? $imgInfo[1] : $imageheight;
}
$params = array(
'filesize' => $fileInfo['size'],
'imagewidth' => $imagewidth,
'imageheight' => $imageheight,
'imagetype' => $suffix,
'imageframes' => 0,
'mimetype' => $fileInfo['type'],
'url' => $uploadDir . $splInfo->getSaveName(),
'uploadtime' => time(),
'storage' => 'local',
'sha1' => $sha1,
);
$attachment = model("attachment");
$attachment->data(array_filter($params));
$attachment->save();
\think\Hook::listen("upload_after", $attachment);
//进行身份判断 将头像 url 写入到数据库中
if(isset($this->user['teacher_phone']))
{
db('teacher')->where('teacher_phone',$this->user['teacher_phone'])
->setField('avatar',$uploadDir . $splInfo->getSaveName());
}
else if (isset($this->user['parent_phone']))
{

db('parents')->where('parent_phone',$this->user['parent_phone'])
->setField('avatar',$uploadDir . $splInfo->getSaveName());
}

$this->success(__('Upload successful'), $attachment);
}
else
{
// 上传失败获取错误信息
$this->error($file->getError());
}
}
```
希望能帮到你
2018-04-23 21:01:04 +08:00
回复了 2ME 创建的主题 酷工作 [杭州-滨江] 招 PHP 工程师 标签: laravel react
@singer
@suhui 两位老哥,已经投递,非常感谢二位。
2018-04-23 00:05:17 +08:00
回复了 dilu 创建的主题 求职 PHP 后端求个工作
@zhngnmng 也是瞎写,实际和人家专业的 RN 肯定差了一大截。看 React 的时候研究的,因为有个项目在用,所以有点了解吧。
2018-04-22 22:17:38 +08:00
回复了 dilu 创建的主题 求职 PHP 后端求个工作
@Tierney 大佬客气了,简历已经投递。
2018-04-22 22:07:35 +08:00
回复了 dilu 创建的主题 求职 PHP 后端求个工作
@xx19941215 也不是 8k 不 8k 的问题,我还会 ReactNative。前端的 Vue 或者别的技术栈因为不算精通,跟人家专业前端肯定没得比,但是前后端都能搞得定,所以也没有写。因为是应届,很多公司都把工资压的特别低。最重要的是想找个技术厉害的公司,这对于我来说应该比工资更重要一点吧,感谢老哥的肯定。
2018-04-22 14:52:21 +08:00
回复了 dilu 创建的主题 求职 PHP 后端求个工作
@easylee 没有关系啊,我就是发上来看看有没有机会,没有就没有呗。谢谢这位老哥捧场。
2018-04-22 11:44:01 +08:00
回复了 dilu 创建的主题 求职 PHP 后端求个工作
@carlclone 是是是,大佬说的是,我实在是太垃圾了

@scutxiaoweihuang 肯定没法和大佬们比了,所以我想了想还是拿 5k 吧


@jiangnanyanyu
@Junjunya
@easylee
@byteli

感谢各位的支持,非常感谢。
2018-04-21 17:35:01 +08:00
回复了 dilu 创建的主题 求职 PHP 后端求个工作
@drug 不要总黑我 PHP 泪奔中


@gbin 感谢老铁送的火箭
2018-04-20 21:05:05 +08:00
回复了 2ME 创建的主题 酷工作 [杭州-滨江] 招 PHP 工程师 标签: laravel react
已经投递,期待有个面试的机会。
2018-04-17 11:03:24 +08:00
回复了 chenlaocong 创建的主题 程序员 公司强制每天加班到 9 点半什么水平
有项目急着上线倒是可以理解,什么事情都没有还加个鬼的班?建议直接跑路。
2018-04-08 21:44:20 +08:00
回复了 wangbenjun5 创建的主题 程序员 从 Web 开发来说, PHP /Node/Go/ Java 最适合哪些阶段?
A 轮稳稳的 PHP,除非特别有钱有背景的那种。不仅仅是便宜吧,主要是快,轮子不说最多也算不少。B 轮看需求吧,如果没有太高的性能上的要求,好好做一下没问题的,尤其是 PHP-FPM 出来之后,PHP7 的性能也有了很大的提升,也是可以支持的。如果 C 轮之后有比较高的并发需求,可以换 Java 或者 Python 什么的。毕竟 PHP 在多线程上先天缺条腿。虽然官方也有 pthread 之类的扩展。后期性能要求更高的前提下,最终还是回归 C/C++/Go 这种语言。
结尾说一句,本人就是 PHP 程序员,不是黑任何语言。
语言只是载体,没必要争论哪个更好,一切看需求来。
2018-04-04 11:56:29 +08:00
回复了 bayker 创建的主题 程序员 公司网络部禁用了国外地址访问。请问怎么安装 docker
daocloud 阿里云 网易云 都有加速
2018-03-31 21:48:07 +08:00
回复了 scriptB0y 创建的主题 程序员 一次编程,到处旅行!!!
实际上是 write once,debug anywhere.
2018-03-25 10:37:32 +08:00
回复了 uoddsa 创建的主题 PHP 各位大佬有用 laravel 寫 APP 接口的麽
不好意思打错了是 lumen
https://lumen.laravel-china.org/docs/5.3 这是中文文档
2018-03-25 10:36:17 +08:00
回复了 uoddsa 创建的主题 PHP 各位大佬有用 laravel 寫 APP 接口的麽
如果只是单纯的写接口 推荐你使用 lemen
laravel 家族出品 专门为 api 而生 文档也全 还有中文的
2018-03-24 22:21:54 +08:00
回复了 JuicyJ 创建的主题 问与答 求推荐博客托管网站
hexo 配合 coding 的 pages 服务
而且 coding 还有一个动态 PHP 的 pages 服务 你可以简单的搭建一个 PHP 程序的博客例如 typecho 之类的
速度还行 从来没有遇到宕机的情况
唯一的缺点吧 就是底下要加上一个 coding 的链接
2018-03-17 20:11:13 +08:00
回复了 unbug 创建的主题 程序员 你被强迫写过哪些违背意愿的代码?
Toast.info("缓存清除成功");
2018-03-16 09:37:35 +08:00
回复了 mashirozx 创建的主题 程序员 2018 年 Stackoverflow 的开发者调查结果出来啦
什么?!!!我大 PHP 亡了?!!!
2018-03-16 09:35:44 +08:00
回复了 ycz0926 创建的主题 Python Python 似乎可以通杀整个后端领域
Python 最近再看 表示真的挺不错

但是问题来了 企业需要的是能干活的人 不管技术不技术的

今天我招了一个 Python 他的代码全是 Python 的 然后他辞职了

我再去市场招人 发现做 Web 的 20 个人里面 有 15 个是 PHP 两个是 Java 一个是 Python 一个是 Ruby 还有一个是别的语言(C#之类 并没有贬低别的语言 只是个比喻)

那你说我作为一个公司的老板我要怎么选?
1 ... 65  66  67  68  69  70  71  72  73  74 ... 79  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3640 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 44ms · UTC 04:56 · PVG 12:56 · LAX 21:56 · JFK 00:56
Developed with CodeLauncher
♥ Do have faith in what you're doing.