RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-324683

JuniorCoder's questions

Martin Hope
JuniorCoder
Asked: 2022-06-07 04:19:01 +0000 UTC

将对象转换为所需格式

  • 0

const _ = require('lodash');
const _ = require('lodash/core');

const data = {
  one: {
    section: [
      {
        name: 'This name one',
        paramsOne: 1,
        paramsTwo: 1,
        childArrayOne: [
          {
            name: 'Supp name one',
          },
          {
            name: 'Supp name two',
          }
        ],
        childArrayTwo: [
          {
            name: 'Supp name one',
          },
          {
            name: 'Supp name two',
          }
        ],
      },
      {
        name: 'This name two',
        paramsOne: 1,
        paramsTwo: 1,
        childArrayOne: [
          {
            name: 'Supp name one',
          },
          {
            name: 'Supp name two',
          }
        ],
        childArrayTwo: [
          {
            name: 'Supp name one',
          },
          {
            name: 'Supp name two',
          }
        ],
      }
    ]
  },
  two: {
    section: [
      {
        name: 'This name one two',
        paramsOne: 1,
        paramsTwo: 1,
        childArrayOne: [
          {
            name: 'Supp name one',
          },
          {
            name: 'Supp name two',
          }
        ],
        childArrayTwo: [
          {
            name: 'Supp name one',
          },
          {
            name: 'Supp name two',
          }
        ],
      },
      {
        name: 'This name two two',
        paramsOne: 1,
        paramsTwo: 1,
        childArrayOne: [
          {
            name: 'Supp name one',
          },
          {
            name: 'Supp name two',
          }
        ],
        childArrayTwo: [
          {
            name: 'Supp name one',
          },
          {
            name: 'Supp name two',
          }
        ],
      }
    ]
  },
};

getRowsForTable(data) {
   const result = _.mapValues(data, (value, key) => {
     if (!value?.sections) {
       return;
     }

     const additionalRows = value.sections.map((val: any) => {
       val.isTotal = true;
       return [...val.miningAreas, ...val.childTotals];
     });

     return {  rows: [...value.sections, ..._.flatMap(additionalRows)] };
   });

   return result;
 }
}
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>

我使用lodash库,数据必须转换为输出到形式:

{
  one: {
    rows: [
      {
        name: 'This name one',
        paramsOne: 1,
        paramsTwo: 1,
        total: true
      },
      {
        name: 'Supp name one',
      },
      {
        name: 'Supp name two',
      },
      {
        name: 'This name two',
        paramsOne: 1,
        paramsTwo: 1,
        total: true
      },
      {
        name: 'Supp name one',
      },
      {
        name: 'Supp name two',
      }
    ]
  },
  two: {
    rows: [
      //Также как и в one
    ]
  }
}

也就是说,我需要用行替换部分,用标记total:true扩展行中的主要对象,并且还要从childArrayOne(应该总是先行)childArrayTwo添加对象。

javascript
  • 1 个回答
  • 10 Views
Martin Hope
JuniorCoder
Asked: 2022-01-06 20:07:24 +0000 UTC

在几个地方连接底座

  • 1

db.js 文件:

const MongoClient = require('mongodb').MongoClient;

const state = {
  db: null
};

exports.connect = (url, done) =>{
  if(state.db) {
    return done();
  }
  MongoClient.connect(url, {},  (err, db) => {
    if(err) {
      return done(err);
    }
    state.db = db;
    done();
  })
};

exports.get = () => {
  return state.db;
};

Server.js 文件:

const db = require('./db');

db.connect('mongodb://localhost:27017/Motoshield', (error) => {
 if(error){
   return console.log(error)
 
 app.listen(9000,function(){
   console.log('Api app started');
 });
});


app.get('/api/new-products',function(req, res){
  db.get().collection("products").find({},{
    projection: {
      categories:0,
      characteristics: 0,
      disadvantage: 0,
      img2: 0,
      img3: 0,
      img4: 0,
      img5: 0,
      img6: 0,
      img7: 0,
      img8: 0
    }
  }).sort({_id:-1}).limit(6).toArray( (error,docs) => {
    if(error) {
      console.log(error);
      return res.sendStatus(500);
    }
    res.send(docs);
  });
});

我正在尝试在多个地方实现数据库连接而不覆盖它以在模型等中使用它。作为响应,我收到一个错误:

TypeError: db.get(...).collection 不是函数

我只是在学习,也许有更好的实现,也有可能有一个如何更好地连接数据库的例子

node.js
  • 1 个回答
  • 10 Views
Martin Hope
JuniorCoder
Asked: 2020-05-14 00:28:01 +0000 UTC

过滤对象数组

  • 0

我有一个这样的对象:

let INVOICE = 
 {
id: 1589387651868,
name: "testing",
data: "2020-05-03T21:00:00.000Z",
totalPrice: "40.0",
products: [
  {
    id: 4,
    name: "Lemon ",
    description: "fresh",
    price: 4,
    discount: 0
  },
  {
    id: 7,
    name: "Banana",
    description: "salat",
    price: 11,
    discount: 0
  },
  {
    id: 6,
    name: "Blueberry",
    description: "fresh",
    price: 15,
    discount: 0
  },
  {
    id: 5,
    name: "Cherry",
    description: "fresh",
    price: 10,
    discount: 0
  }
]

}

像这样的数组:

let PRODUCTS = [
  {
    id:1,
    name: 'Grapes',
    description: 'eating',
    price: 5
  },
  {
    id:2,
    name: 'Lime',
    description: 'eating',
    price: 3
  },
  {
    id:3,
    name: 'Apple',
    description: 'eating',
    price: 7
  },
  {
    id:4,
    name: 'Lemon ',
    description: 'fresh',
    price: 4
  },
  {
    id:5,
    name: 'Cherry',
    description: 'fresh',
    price: 10
  },
  {
    id:6,
    name: 'Blueberry',
    description: 'fresh',
    price: 15
  },
  {
    id:7,
    name: 'Banana',
    description: 'salat',
    price: 11
  },{
    id:8,
    name: 'Watermelon',
    description: 'salat',
    price: 20
  },
  {
    id:9,
    name: 'Pineapple',
    description: 'salat',
    price: 30
  },
  {
    id:10,
    name: 'Orange',
    description: 'salat',
    price: 17
  },
  {
    id:11,
    name: 'Avocado',
    description: 'eating',
    price: 26
  }
];

我需要通过 INVOICE.products 过滤 PRODUCTS 数组,因此,我应该得到一个新的 PRODUCTS 数组,其中将不再有 INVOICE.products 数组中的对象。我尝试使用以下方法实现它:

C = A.filter(val => { B.indexOf(val) == -1;});

结果,我得到一个空数组,很可能是由于数组中的对象不同!

javascript
  • 1 个回答
  • 10 Views
Martin Hope
JuniorCoder
Asked: 2020-11-14 00:23:56 +0000 UTC

角度检查电子邮件是否存在于数据库中

  • 1

我有一个表格:

this.auteficationForm = this.formBuilder.group({
  email: new FormControl('', [ Validators.required, Validators.email, this.passwordValidator]),
  name: new FormControl('', [ Validators.required]),
  password: new FormControl('', [ Validators.required, Validators.minLength(6)]),
  secondPassword: new FormControl('', [ Validators.required])
}, {
  validator: MustMatch('password', 'secondPassword')
});

我正在尝试检查数据库中是否存在电子邮件,但出现错误:

error TS2740: Type 'Observable<any>' is missing the following properties from type 'Subscription': closed, _parent, _parents, _subscriptions, and 4 more.

验证器实现 this.passwordValidator

 passwordValidator(control: FormControl): Subscription {
    return this.authService.validateMail(control.value)
      .pipe(takeUntil(this.unsubscibe))
      .subscribe(
        (e) => {console.log(e)}
      );

  }

this.authService 到服务器并在那里发送肥皂,我从服务器得到响应:

if(validation.length === 0){
    res.send(null);
  }else{
    res.send({uniq:true});
  }

我查看了多少示例,我只是不知道如何为这个检查实现一个异步验证器!

angular2
  • 1 个回答
  • 10 Views
Martin Hope
JuniorCoder
Asked: 2020-11-02 02:15:54 +0000 UTC

在 Angular 中使用动态表单

  • 2

我有一个像 ReactForm 这样的表单组件:

app-invProduct 组件内的表单

<form>
      <input type="text">
      <input type="text">
</form>

<AppComponent>
  <app-invProduct *ngFor="let product of productList"></app-invProduct>
  <button>new</button>
  <button>save</button>
</AppComponent>

我还有一个 productList 对象数组,这是一个空表单的图像

producIteam:{} = {
    name: '',
    description: '',
    price: '',
    discount: ''
  }

通过点击新按钮,一个空的表单对象被压入数组,结果,一个新的表单被绘制出来,你可以有多少这样的表单。

问题是我需要从这些表单中收集值进行进一步处理。要获取我使用的值:

this.productForm.valueChanges.subscribe(
      data => console.log(data)
);

当我更改数据或添加新表单时,数据就会出现在我面前!我不知道如何正确保存它们以供进一步处理。创建一个数组,给每个表单一个id,并将数据压入数组,如果这个id下已经有数据,那就改吧!如何正确实现???

javascript
  • 1 个回答
  • 10 Views
Martin Hope
JuniorCoder
Asked: 2020-09-14 00:31:41 +0000 UTC

更新数组时出错

  • 1

我有一个组件:

import { Component, OnInit } from '@angular/core';
import { PostService } from '../shared/services/post.service';
import { CreatePost } from '../shared/model/post.model';
import { Router } from '@angular/router';

@Component({
selector: 'app-post',
templateUrl: './post.component.html',
styleUrls: ['./post.component.css']
})
export class PostComponent implements OnInit {

 confirmPost:CreatePost[] = [];
 unconfirmPost:CreatePost[] = [];
searchPost = '';

 constructor(
   private postService: PostService,
  private router: Router
  ) { }

  ngOnInit() {
  this.postService.getPosts()
  .subscribe((post: CreatePost[])=>{
    this.confirmPost = post.filter(p => p.confirm === true).reverse();
    this.unconfirmPost = post.filter(p => p.confirm === false);
  });
}

 watchPost(post:CreatePost){
   this.router.navigate(['/system/post', post.id],{queryParams: post});
 }

 confirmePost(post:CreatePost){
  post.confirm = true;
  this.postService.updatePost(post)
   .subscribe((poste:CreatePost[]) => {
   this.confirmPost = this.confirmPost.unshift(poste);
  });
  }
 }

CreatePost 模型:

export class CreatePost{
  constructor(
    public data: any,
    public category: string,
    public user: string,
    public title: string,
    public text: string,
    public like: number,
    public watch: number,
    public confirm: boolean,
    public id?: number
  ){}
}

当我尝试更新数组 this.confirmPost = this.confirmPost.unshift(poste); 我收到一个错误:

ERROR in src/app/system/post/post.component.ts(39,51): error TS2345: Argument of type 'CreatePost[]' is not assignable to parameter of type 'CreatePost'.
  Type 'CreatePost[]' is missing the following properties from type 'CreatePost': data, category, user, title, and 4 more.
angularjs
  • 1 个回答
  • 10 Views
Martin Hope
JuniorCoder
Asked: 2020-09-01 23:45:16 +0000 UTC

角度路由无法正常工作

  • 2

我有一个内容所在的主页,并且

<router-outlet></router-outlet>

页面上有2个登录和注册按钮,我为它们写了路由:

const routes: Routes = [
  {path: '', component: AuthComponent, children:[
    {path: 'login' , component: LoginComponent },
    {path: 'registration' , component: RegistrationComponent }
  ]}
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})

问题是当我通过路由时,登录和注册页面的内容被加载到router-outlet标签中的主页,如何使它,例如,在*****/登录地址,我已经加载了一个单独的 Auth 组件(例如)并且在 nevo 中已经取决于所需的页面!

angular
  • 1 个回答
  • 10 Views
Martin Hope
JuniorCoder
Asked: 2020-03-13 21:40:46 +0000 UTC

不显示来自数据库类型 Varchar 的记录

  • 0

不要将记录从数据库输出到 Varchar 类型。我通过 AJAX 向数据库发送请求,作为响应,我得到一个空请求,但如果我选择并注释掉某些字段,我最终会得到正确的响应。

JS:

$.ajax({
        type: "POST",
        url: "/php/loadalcars.php",
        dataType: "text",
        cache: false,
        success: function (resp) {
            console.log(resp);
        },
        error:function(data){
            console.log('error');
            console.log(data);
        }
    });

PHP:

<?php

 if ($_SERVER['REQUEST_METHOD'] === "POST") {

 $link = mysqli_connect("localhost", 
 "*****","*********","**********","3306");

if (!$link) {
echo "Ошибка: Невозможно установить соединение с MySQL." . PHP_EOL;
echo "Код ошибки errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Текст ошибки error: " . mysqli_connect_error() . PHP_EOL;
exit;
 }
$sql = "SELECT id,mark,model,mile,price,describeru,img1 FROM cars LIMIT 9";
$result = mysqli_query($link,$sql);

$res = array();

while($row = mysqli_fetch_assoc($result)){
 $res[] = $row;
}
 echo json_encode($res);
}
?>

如果来自:

$sql = "SELECT id,mark,model,mile,price,describeru,img1 FROM cars LIMIT 9";

describeru - 如果我删除它,我会得到答案!

数据库结构:

    typemenu    varchar(50)     utf8_general_ci         
    mark    varchar(50)     utf8_general_ci 
    model   varchar(50)     utf8_general_ci     
    year    int(4)            
    mile    int(15)         
    volume  varchar(50)     utf8_general_ci         
    **describeru    varchar(8000)   utf8_general_ci**       
php
  • 1 个回答
  • 10 Views
Martin Hope
JuniorCoder
Asked: 2020-02-15 20:33:26 +0000 UTC

将数据库发送到邮件或以txt格式下载

  • 0

我试图通过单击按钮将数据库发送到邮件,但结果是收到了不正确的信!

$('button').click(function(){
  $.ajax({
            type: "POST",
            url: '../loadtxt.php',
            cache: false,
            success: function () {
                console.log('good');
 
             },
             error:function(respond){
                console.log('bad');
             }
        });
});

//PHP

<?php

 
  $connect_to_db = mysql_connect($db_host, $db_username, $db_password)
  or die("Could not connect: " . mysql_error());
 
  mysql_select_db($db_name, $connect_to_db)
  or die("Could not select DB: " . mysql_error());

$method = $_SERVER['REQUEST_METHOD'];
$c = true;

 $ss = mysql_query("SELECT * FROM commenduser");
 echo json_encode($ss);
while ($d = mysql_fetch_array($ss)){
//гененрируем письмо
$subject = "Коментарии"; 
$from = "xxx@gmail.com";
$to = "xxx@gmail.com";
$message ="Сообщения"; 

$boundary = "--".md5(uniqid(time())); 
$headers = "MIME-Version: 1.0;\r\n"; 
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n"; 
$headers .= "From: info@site.ru ";
$headers .= "Reply-To: " . $from . "\r\n";
$headers .= "Content-type: text/html; charset=\"utf-8\";" . "\r\n";

$arr = mysql_fetch_array($ss);


foreach ( $arr as $key => $value ) {
    if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) {
        $multipart .= "
        " . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
            <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
            <td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
        </tr>
        ";
    }
}

mail($to,$subject,$multipart,$headers);
 }
?>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>send</button>

结果,我在邮件中收到了这个:

 <tr style="background-color: #f8f8f8;">
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>id</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>5c63eba6bc584</td>
    </tr>

    <tr>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>1</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>0</td>
    </tr>

    <tr style="background-color: #f8f8f8;">
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>type</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>0</td>
    </tr>

    <tr>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>2</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>test</td>
    </tr>

    <tr style="background-color: #f8f8f8;">
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>name</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>test</td>
    </tr>

    <tr>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>3</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>test@mail.com</td>
    </tr>

    <tr style="background-color: #f8f8f8;">
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>mail</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>test@mail.com</td>
    </tr>

    <tr>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>4</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>28834734</td>
    </tr>

    <tr style="background-color: #f8f8f8;">
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>phone</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>28834734</td>
    </tr>

    <tr>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>5</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>5</td>
    </tr>

    <tr style="background-color: #f8f8f8;">
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>rating</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>5</td>
    </tr>

    <tr>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>6</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>commend</td>
    </tr>

    <tr style="background-color: #f8f8f8;">
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>commend</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>commend</td>
    </tr>
php
  • 1 个回答
  • 10 Views
Martin Hope
JuniorCoder
Asked: 2020-02-15 02:08:41 +0000 UTC

删除 PHP 文件

  • 0

通过单击该元素,我想从数据库和服务器中删除文件,但我从服务器得到一个空响应和一个错误:

status: 500,
responseText: "",
statusText: "Internal Server Error"

$('#js-remove').click(function(){
       let id =  $(this).attr('data-id');
        $.ajax({
            type: "POST",
            url: 'remove.php',
            data: {'id': id },
            dataType: "json",
            cache: false,
            success: function (respond) {
                console.log('good');
                console.log(respond);
             },
             error:function(respond){
                console.log('bad');
                console.log(respond);
             }
        });
    });
    
//PHP

$connect_to_db = mysql_connect($db_host, $db_username, $db_password)
or die("Could not connect: " . mysql_error());

mysql_select_db($db_name, $connect_to_db)
or die("Could not select DB: " . mysql_error());

 $id = $_POST['id'];

$rmfile = mysql_query("SELECT img1,img2,img3,img4,img5,img6,img7,img8 FROM cars WHERE id = '$id'") 

while ($row = mysql_fetch_assoc($rmfile)) {
    foreach ($row as $key => $value) {
        unlink('../img/uppcars/'.$value.'.jpg');
    }
}
$remove = mysql_query("DELETE FROM cars WHERE id = $id");
mysql_close($connect_to_db);
<button data-id="374esndas3had" id="js-remove">Delete</button>

php
  • 1 个回答
  • 10 Views
Martin Hope
JuniorCoder
Asked: 2020-02-06 23:50:12 +0000 UTC

ajax 请求错误 - parsererror

  • 1

我们有一个小的 html 代码:

<input type="file" multiple="multiple" accept="image/*">
<a href="#" class="submit button">Загрузить файлы</a>

我通过ajax发送收集到的图像进行处理

 let files;

$('input[type=file]').change(function(){
    files = this.files;
    if(files.length == 8){
        $('.erroResponse').hide();
    } else {
        $('.erroResponse').show();
    }
});

$('.submit.button').click(function( event ){
    event.stopPropagation(); // Остановка происходящего
    event.preventDefault();  // Полная остановка происходящего

    // Содадим данные формы и добавим в них данные файлов из files
    var data = new FormData();
    $.each( files, function( key, value ){
        data.append( key, value );
    });
    // Отправляем запрос
    $.ajax({
        url: '/acces/default/loadimage.php',
        type: 'POST',
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        dataType: "json",
        success: function( respond, textStatus, jqXHR ){

            if( typeof respond.error === 'undefined' ){
                // Файлы успешно загружены, делаем что нибудь здесь
                str = respond.replace(/\]\[/g, ",");
                var data = JSON.parse(str);
                console.log(data);
            }
            else{
                console.log('ОШИБКИ ОТВЕТА сервера: ' + respond.error );
            }
        },
        error: function( jqXHR, textStatus, errorThrown ){
            console.log('ОШИБКИ AJAX запроса: ' + textStatus );
        }
    });

});

结果我收到一个错误:parsererror; dataType:更改为 jsonp - 同样的错误;数据类型:更改为文本得到另一个错误 -

SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
javascript
  • 1 个回答
  • 10 Views
Martin Hope
JuniorCoder
Asked: 2020-02-06 02:48:04 +0000 UTC

字符串到数组的转换

  • 2

我们有一个思路:

["5f02a238f331c8d97d034ea75ffc5980.jpg"]["c9c73e530e271bf09c9c3ed468ba4045.jpg"]["db3b5058f7b53c1bb82baf83a3d25d7f.jpg"]["0ce6f72a1608673f1ad9bbd5657b7257.jpg"]["5c088f2fdfe5c4bbdf2fbb98fe6affa0.jpg"]["b18de21683cfba726f31f66878e9d027.jpg"]["80deb2befce558aad5152d1b8cf7b216.jpg"]["6e0553d5dcd9d5fc713370ea9781f128.jpg"]

您需要将字符串转换为这样的数组:

["5f02a238f331c8d97d034ea75ffc5980.jpg","5f02a238f331c8d97d034ea75ffc5980.jpg","5f02a238f331c8d97d034ea75ffc5980.jpg"]
javascript
  • 1 个回答
  • 10 Views
Martin Hope
JuniorCoder
Asked: 2020-02-04 18:07:45 +0000 UTC

上传文件类型检查

  • 2

我们有一个简单的表单,一个多图片选择按钮,以及一个上传它们的按钮!

var files;

// Вешаем функцию на событие
// Получим данные файлов и добавим их в переменную
$('input[type=file]').change(function(){
	files = this.files;
});


// Вешаем функцию ан событие click и отправляем AJAX запрос с данными файлов
$('.submit.button').click(function( event ){
	event.stopPropagation(); // Остановка происходящего
	event.preventDefault();  // Полная остановка происходящего

	// Содадим данные формы и добавим в них данные файлов из files
	var data = new FormData();
	$.each( files, function( key, value ){
		data.append( key, value );
	});

	// Отправляем запрос
	$.ajax({
		url: './submit.php?uploadfiles',
		type: 'POST',
		data: data,
		cache: false,
		dataType: 'json',
		processData: false, // Не обрабатываем файлы (Don't process the files)
		contentType: false, // Так jQuery скажет серверу что это строковой запрос
		success: function( respond, textStatus, jqXHR ){
			// Если все ОК
			if( typeof respond.error === 'undefined' ){
				// Файлы успешно загружены, делаем что нибудь здесь

				console.log( respond );
				// выведем пути к загруженным файлам в блок '.ajax-respond'
				var files_path = respond.files;
				var html = '';
				$.each( files_path, function( key, val ){ html += val +'<br>'; } )
				$('.ajax-respond').html( html );
			}
			else{
				console.log('ОШИБКИ ОТВЕТА сервера: ' + respond.error );
			}
		},
		error: function( jqXHR, textStatus, errorThrown ){
			console.log('ОШИБКИ AJAX запроса: ' + textStatus );
		}
	});
	
});

//PHP
<?php

// Переменная ответа
$data = array();

echo json_encode($data);
if( isset( $_GET['uploadfiles'] ) ){  
    $error = false;
    $files = array();

    $uploaddir = './uploads/'; // . - текущая папка где находится submit.php
	
	// Создадим папку если её нет
	if( ! is_dir( $uploaddir ) ) mkdir( $uploaddir, 0777 );

	// переместим файлы из временной директории в указанную
	foreach( $_FILES as $file ){
        if( move_uploaded_file( $file['tmp_name'], $uploaddir . basename($file['name']) ) ){
            $files[] = realpath( $uploaddir . $file['name'] );
        }
        else{
            $error = true;
        }
    }
	
    $data = $error ? array('error' => 'Ошибка загрузки файлов.') : array('files' => $files );
	
	echo json_encode( $data );
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="wrapper">
		<input type="file" multiple="multiple" accept="image/*">
		<a href="#" class="submit button">Загрузить файлы</a>
		<div class="ajax-respond"></div>
	</div>

我只是无法添加文件类型检查(我需要图片)并更改文件名。

javascript
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5